From 811e3ea29916e981f6ac1401383de738bb2070b1 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 19 Oct 2022 10:41:29 +1100 Subject: [PATCH] New Crowdin updates (#3795) * 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 * 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 * 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 * 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 * 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 * 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 * 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/cs/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/da/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/de/LC_MESSAGES/django.po | 1274 ++++++++--------- InvenTree/locale/el/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/en/LC_MESSAGES/django.po | 62 +- InvenTree/locale/es/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/es_MX/LC_MESSAGES/django.po | 62 +- InvenTree/locale/fa/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/fr/LC_MESSAGES/django.po | 1274 ++++++++--------- InvenTree/locale/he/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/hu/LC_MESSAGES/django.po | 1274 ++++++++--------- InvenTree/locale/id/LC_MESSAGES/django.po | 1314 ++++++++--------- InvenTree/locale/it/LC_MESSAGES/django.po | 1274 ++++++++--------- InvenTree/locale/ja/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/ko/LC_MESSAGES/django.po | 1324 +++++++++--------- InvenTree/locale/nl/LC_MESSAGES/django.po | 1272 ++++++++--------- InvenTree/locale/no/LC_MESSAGES/django.po | 1302 ++++++++--------- InvenTree/locale/pl/LC_MESSAGES/django.po | 1306 ++++++++--------- InvenTree/locale/pt/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/pt_br/LC_MESSAGES/django.po | 62 +- InvenTree/locale/ru/LC_MESSAGES/django.po | 1316 ++++++++--------- InvenTree/locale/sv/LC_MESSAGES/django.po | 1310 ++++++++--------- InvenTree/locale/th/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/tr/LC_MESSAGES/django.po | 1318 ++++++++--------- InvenTree/locale/vi/LC_MESSAGES/django.po | 1312 ++++++++--------- InvenTree/locale/zh/LC_MESSAGES/django.po | 1278 ++++++++--------- 26 files changed, 15094 insertions(+), 15048 deletions(-) diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po index 02aa69ec54..0f7568d0fe 100644 --- a/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -25,20 +25,20 @@ msgstr "API endpoint nebyl nalezen" msgid "Error details can be found in the admin panel" msgstr "Podrobnosti o chybě lze nalézt v panelu administrace" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Zadejte datum" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Duplicitní výrobní číslo: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Nevyplněné výrobní číslo" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Neplatná skupina: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Neplatná/nevyplněná skupina {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Nenalezena žádná výrobní čísla" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "Chybějící soubor" msgid "Missing external link" msgstr "Chybějící externí odkaz" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Vyberte soubor k přiložení" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Vyberte soubor k přiložení" msgid "Link" msgstr "Odkaz" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Odkaz na externí URL" @@ -234,10 +223,10 @@ msgstr "Komentář" msgid "File comment" msgstr "Komentář k souboru" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Chyba při přejmenování souboru" msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Název" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Chyba serveru" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Musí být platné číslo" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Čeština" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Němčina" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Řečtina" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Angličtina" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Španělština" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Španělština (Mexiko)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Farsi / Perština" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Francouzština" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Hebrejština" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Maďarština" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Italština" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Japonština" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Korejština" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Nizozemština" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norština" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Polština" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portugalština" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portugalština (Brazilská)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Ruština" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Švédština" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Thajština" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Turečtina" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnamština" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Čínština" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Neplatný kód měny" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po index 258b5b4062..e32d20bf0c 100644 --- a/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:51\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -25,20 +25,20 @@ msgstr "API endpoint ikke fundet" msgid "Error details can be found in the admin panel" msgstr "Fejloplysninger kan findes i admin panelet" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Angiv dato" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "" @@ -234,10 +223,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 1b4ed408d1..6e4124cdee 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -25,20 +25,20 @@ msgstr "API-Endpunkt nicht gefunden" msgid "Error details can be found in the admin panel" msgstr "Fehlerdetails finden Sie im Admin-Panel" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Datum eingeben" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "Remote-Server gab leere Antwort zurück" msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Doppelte Seriennummer: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Keine Seriennummer angegeben" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ungültiger Gruppenbereich: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Ungültige Gruppe: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ungültige Gruppensequenz: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Ungültige/Keine Gruppe {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Keine Seriennummern gefunden" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "Entferne HTML-Tags von diesem Wert" @@ -200,7 +189,7 @@ msgstr "Fehlende Datei" msgid "Missing external link" msgstr "Fehlender externer Link" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Datei zum Anhängen auswählen" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Datei zum Anhängen auswählen" msgid "Link" msgstr "Link" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Link zu einer externen URL" @@ -234,10 +223,10 @@ msgstr "Kommentar" msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Fehler beim Umbenennen" msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Name" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Serverfehler" msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" @@ -425,103 +414,103 @@ msgstr "URL der Remote-Bilddatei" msgid "Downloading images from remote URL is not enabled" msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Tschechisch" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "Dänisch" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Griechisch" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Spanisch (Mexikanisch)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Persisch" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Ungarisch" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Italienisch" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portugiesisch" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portugiesisch (Brasilien)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Chinesisch" @@ -688,33 +677,24 @@ msgstr "Gegen Bestellung empfangen" msgid "Production" msgstr "in Arbeit" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Kein gültiger Währungscode" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Ungültiger Buchstabe im Teilenamen" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN muss zu Regex-Muster {pat} passen" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Referenz muss zu Regex-Muster {pattern} passen" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Überschuss-Wert darf nicht negativ sein" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Überschuss darf 100% nicht überschreiten" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "Ungültiger Wert für Ausschuss" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Bauauftragsreferenz" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Auftrag Referenz" msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Quell-Lagerort" @@ -888,16 +868,16 @@ msgstr "Bauauftrags-Status" msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Losnummer" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Erstelldatum" @@ -930,7 +910,7 @@ msgstr "Nutzer der diesen Bauauftrag erstellt hat" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Externer Link" @@ -1008,9 +988,9 @@ msgstr "Bauauftrag" msgid "Build to allocate parts" msgstr "Bauauftrag starten um Teile zuzuweisen" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Lagerartikel" msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Installiere in" msgid "Destination stock item" msgstr "Ziel-Lagerartikel" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "Endprodukt" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "Dieses Endprodukt wurde bereits fertiggestellt" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Menge der Endprodukte angeben" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "Ganzzahl für verfolgbare Teile erforderlich" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Seriennummer" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Seriennummer für dieses Endprodukt eingeben" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "Seriennummern automatisch zuweisen" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" -msgstr "Folgende Seriennummern existieren bereits" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" +msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "Eine Liste von Endprodukten muss angegeben werden" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "Eine Liste von Endprodukten muss angegeben werden" msgid "Location" msgstr "Lagerort" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "Lagerort für fertige Endprodukte" msgid "Status" msgstr "Status" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "Unvollständige Zuweisung akzeptieren" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "Endprodukte fertigstellen, auch wenn Bestand nicht fertig zugewiesen wurde" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "Zugewiesenen Bestand entfernen" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "Abzug aller Lagerbestände, die diesem Build bereits zugewiesen wurden" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "Unfertige Endprodukte entfernen" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "Lösche alle noch nicht abgeschlossenen Endprodukte" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "Nicht zugewiesene akzeptieren" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Akzeptieren, dass Lagerartikel diesem Bauauftrag nicht vollständig zugewiesen wurden" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "Unvollständig Zuweisung akzeptieren" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "Akzeptieren, dass die erforderliche Anzahl der Bauaufträge nicht abgeschlossen ist" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "Bauauftrag hat unvollständige Aufbauten" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "Stücklisten-Position" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "Endprodukt" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "Teil muss auf Lager sein" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Verfügbare Menge ({q}) überschritten" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "Dieser Lagerbestand wurde bereits diesem Endprodukt zugewiesen" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "Zuweisungen müssen angegeben werden" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Lagerort, von dem Teile bezogen werden sollen (leer lassen, um sie von jedem Lagerort zu nehmen)" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "Lagerort ausschließen" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "Lagerartikel vom ausgewählten Ort ausschließen" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "Wechselbares Lagerbestand" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Lagerartikel an mehreren Standorten können austauschbar verwendet werden" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "Ersatzbestand" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "Zuordnung von Ersatzteilen erlauben" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "Barcode-Scanner Unterstützung" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "Barcode Webcam-Unterstützung" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode-Scannen über Webcam im Browser erlauben" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:931 +#: common/models.py:938 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:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:938 +#: common/models.py:945 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:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "Vorlage" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "Komponente" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "Nachverfolgbar" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "Import in Ansichten anzeigen" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "Importassistent in einigen Teil-Ansichten anzeigen" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "Preis in Formularen anzeigen" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "Teilpreis in einigen Formularen anzeigen" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "Preis in Stückliste anzeigen" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "Preisinformationen in Stücklisten Tabellen einbeziehen" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "Preisverlauf anzeigen" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "Historische Preise für Teil anzeigen" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "Verwandte Teile anzeigen" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "Verwandte Teile eines Teils anzeigen" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "Ausgangsbestand erstellen" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "Interne Preise" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "Interne Preise für Teile aktivieren" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "Interner Preis als Stückliste-Preis" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwenden" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "Anzeigeformat für Teilenamen" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "Format für den Namen eines Teiles" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "Labeldruck aktivieren" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "Labeldruck über die Website aktivieren" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "Label Bild DPI" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "Berichte aktivieren" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "Berichterstellung aktivieren" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "Testberichte aktivieren" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "Testberichte anhängen" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Beim Drucken eines Testberichts dem zugehörigen Lagerbestand eine Kopie des Testberichts beifügen" -#: common/models.py:1136 +#: common/models.py:1143 +msgid "Globally Unique Serials" +msgstr "" + +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" +msgstr "" + +#: common/models.py:1150 msgid "Batch Code Template" msgstr "Losnummer Vorlage" -#: common/models.py:1137 +#: common/models.py:1151 msgid "Template for generating default batch codes for stock items" msgstr "Vorlage für die Generierung von Standard-Losnummern für Lagerbestände" -#: common/models.py:1142 +#: common/models.py:1156 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:1143 +#: common/models.py:1157 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:1149 +#: common/models.py:1163 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:1150 +#: common/models.py:1164 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:1156 +#: common/models.py:1170 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:1157 +#: common/models.py:1171 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:1159 +#: common/models.py:1173 msgid "days" msgstr "Tage" -#: common/models.py:1164 +#: common/models.py:1178 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:1165 +#: common/models.py:1179 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:1171 +#: common/models.py:1185 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:1172 +#: common/models.py:1186 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:1178 +#: common/models.py:1192 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1179 +#: common/models.py:1193 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1184 +#: common/models.py:1198 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1185 +#: common/models.py:1199 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1191 +#: common/models.py:1205 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1192 +#: common/models.py:1206 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1198 +#: common/models.py:1212 msgid "Sales Order Default Shipment" msgstr "Auftrag Standardsendung" -#: common/models.py:1199 +#: common/models.py:1213 msgid "Enable creation of default shipment with sales orders" msgstr "Erstelle eine Standardsendung für Aufträge" -#: common/models.py:1205 +#: common/models.py:1219 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1206 +#: common/models.py:1220 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1213 +#: common/models.py:1227 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/models.py:1214 +#: common/models.py:1228 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/models.py:1220 +#: common/models.py:1234 msgid "Enable registration" msgstr "Anmeldung erlauben" -#: common/models.py:1221 +#: common/models.py:1235 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1227 +#: common/models.py:1241 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/models.py:1228 +#: common/models.py:1242 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/models.py:1234 +#: common/models.py:1248 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/models.py:1235 +#: common/models.py:1249 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/models.py:1241 +#: common/models.py:1255 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/models.py:1242 +#: common/models.py:1256 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/models.py:1248 +#: common/models.py:1262 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/models.py:1249 +#: common/models.py:1263 msgid "On signup ask users twice for their mail" msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen" -#: common/models.py:1255 +#: common/models.py:1269 msgid "Password twice" msgstr "Passwort zweimal" -#: common/models.py:1256 +#: common/models.py:1270 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/models.py:1262 +#: common/models.py:1276 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/models.py:1263 +#: common/models.py:1277 msgid "Group to which new users are assigned on registration" msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden" -#: common/models.py:1269 +#: common/models.py:1283 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/models.py:1270 +#: common/models.py:1284 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/models.py:1276 +#: common/models.py:1290 msgid "Check plugins on startup" msgstr "Plugins beim Start prüfen" -#: common/models.py:1277 +#: common/models.py:1291 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren" -#: common/models.py:1284 +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "Navigations-Integration aktivieren" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "App-Integration aktivieren" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "Terminplan-Integration aktivieren" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "Geplante Aufgaben aktivieren" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "Ereignis-Integration aktivieren" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "Aktuelle Teile-Stände" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "Nicht validierte Stücklisten anzeigen" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "Anzahl des geänderten Bestands auf der Startseite" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "Teile suchen" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "Teile in der Suchvorschau anzeigen" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "Zuliefererteile durchsuchen" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "Zuliefererteile in der Suchvorschau anzeigen" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "Herstellerteile durchsuchen" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "Herstellerteile in der Suchvorschau anzeigen" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "Kategorien durchsuchen" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "Teilekategorien in der Suchvorschau anzeigen" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "Bestand durchsuchen" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "Lagerartikel in Suchvorschau anzeigen" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "Nicht verfügbare Artikel ausblenden" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "Lagerorte durchsuchen" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "Lagerorte in Suchvorschau anzeigen" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "Firmen durchsuchen" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "Firmen in der Suchvorschau anzeigen" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "Bestellungen durchsuchen" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "Bestellungen in der Suchvorschau anzeigen" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktive Bestellungen ausblenden" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "Aufträge durchsuchen" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "Aufträge in der Suchvorschau anzeigen" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "Inaktive Aufträge ausblenden" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktive Aufträge in der Suchvorschau ausblenden" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Teilzeitplanung" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "Preis" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "Name für diesen Webhook" msgid "Active" msgstr "Aktiv" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "Token" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "Geheimnis" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "Host" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "Kopfzeile" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "Body" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "Anlaufstelle" msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "Bild" @@ -2867,7 +2867,7 @@ msgstr "Währung" msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "Parametername" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "Wert" msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "Notiz" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "Verpackungen" @@ -3031,7 +3031,7 @@ msgstr "Packungsmenge" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "Vielfache" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "Bild von URL herunterladen" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "Bild hochladen" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "Bild herunterladen" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "Zugewiesene Lagerartikel" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "Empfangen" msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "Kontrolliert von" msgid "User who checked this shipment" msgstr "Benutzer, der diese Sendung kontrolliert hat" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "Sendung" @@ -3909,7 +3909,7 @@ msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen" msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein" @@ -3949,11 +3949,11 @@ msgstr "Währung" msgid "Order cannot be cancelled" msgstr "Bestellung kann nicht verworfen werden" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "Lieferant muss mit der Bestellung übereinstimmen" msgid "Purchase order must match supplier" msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "Position" @@ -3989,7 +3989,7 @@ msgstr "Position" msgid "Line item does not match purchase order" msgstr "Position stimmt nicht mit Kaufauftrag überein" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "Zielort für empfangene Teile auswählen" @@ -4013,51 +4013,51 @@ msgstr "Barcode ist bereits in Verwendung" msgid "An integer quantity must be provided for trackable parts" msgstr "Ganzzahl für verfolgbare Teile erforderlich" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "Positionen müssen angegeben werden" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "Ziel-Lagerort muss angegeben werden" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "Barcode muss eindeutig sein" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "Verkaufspreis-Währung" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "Keine Sendungsdetails angegeben" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "Position ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "Anzahl muss positiv sein" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "Seriennummern zum Zuweisen eingeben" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "Sendung wurde bereits versandt" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "Sendung ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "Folgende Serienummern konnten nicht gefunden werden" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "Folgende Seriennummern sind bereits zugewiesen" @@ -4070,11 +4070,11 @@ msgstr "Überfällige Bestellung" msgid "Purchase order {po} is now overdue" msgstr "Bestellung {po} ist jetzt überfällig" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Auftrag {so} ist jetzt überfällig" @@ -4398,8 +4398,8 @@ msgstr "Standort für anfänglichen Bestand angeben" msgid "This field is required" msgstr "Dieses Feld ist erforderlich" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "Standard-Lagerort" @@ -4444,7 +4444,7 @@ msgstr "Symbol" msgid "Icon (optional)" msgstr "Symbol (optional)" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" @@ -4475,56 +4475,48 @@ msgstr "Ungültige Auswahl für übergeordnetes Teil" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)" -#: part/models.py:628 -msgid "Next available serial numbers are" -msgstr "Nächste verfügbare Seriennummern wären" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" +msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "Nächste verfügbare Seriennummer ist" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "Die neuste Seriennummer ist" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "Variante von" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "Schlüsselwörter" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" msgid "Category" msgstr "Kategorie" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "Version" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "Minimaler Bestand" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "Stock Keeping Units (SKU) für dieses Teil" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "Teile-Notizen" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2305 +#: part/models.py:2319 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:2322 +#: part/models.py:2336 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:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "Benötigt" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:2361 +#: part/models.py:2375 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:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:2367 +#: part/models.py:2381 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:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Ungültiges Zeichen im Vorlagename ({c})" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "Einheit des Parameters" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "Wert" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "Teil-ID" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "Name des Teils" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "Teil-ID" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "Stufe" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "Optional" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "Geerbt" -#: part/models.py:2686 +#: part/models.py:2700 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:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "Doppelte Beziehung existiert bereits" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "Inaktiv" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "Teildetails anzeigen" @@ -5452,28 +5444,28 @@ msgstr "Im Bau" msgid "Minimum stock level" msgstr "Minimaler Bestand" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "letzte Seriennummer" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "Nach Seriennummer suchen" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "Berechnen" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "Keine passenden Bilder gefunden" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "Teildetails ausblenden" @@ -5831,6 +5823,20 @@ msgstr "Kein Autor gefunden" msgid "No date found" msgstr "Kein Datum gefunden" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "Bestellungen aktivieren" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "Lagerartikel Test-Bericht" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "Ergebnis" @@ -6059,241 +6065,237 @@ msgstr "Gültiges Teil muss angegeben werden" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "Teile-Typ ('{pf}') muss {pe} sein" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:480 +#: stock/models.py:536 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:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:508 +#: stock/models.py:564 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:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "Die Verpackung dieses Lagerartikel ist gelagert in" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "verbaut in" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "Ablaufdatum" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "Lagerartikel-Notizen" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "In Teil umgewandelt" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1200 +#: stock/models.py:1256 #, 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:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seriennummern {exists} existieren bereits" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "Test Notizen" @@ -6318,7 +6320,7 @@ msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})" msgid "Enter serial numbers for new items" msgstr "Seriennummern für neue Teile eingeben" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "Ziel-Bestand" @@ -6330,99 +6332,99 @@ msgstr "Optionales Notizfeld" msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "Lagerartikel für Installation auswählen" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "Lagerartikel ist nicht verfügbar" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "Ausgewähltes Teil ist nicht in der Stückliste" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "Ziel Lagerort für unverbautes Objekt" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr " Transaktionsnotizen hinzufügen (optional)" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "Teil muss verkaufbar sein" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "Artikel ist einem Kundenauftrag zugeordnet" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "Artikel ist einem Fertigungsauftrag zugeordnet" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "Kunde zum Zuweisen von Lagerartikel" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "Ausgewählte Firma ist kein Kunde" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "Notizen zur Lagerzuordnung" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "Notizen zur Lagerartikelzusammenführung" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "Unterschiedliche Lieferanten erlauben" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "Unterschiedliche Status erlauben" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "Mindestens zwei Lagerartikel müssen angegeben werden" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "Primärschlüssel Lagerelement" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" @@ -8652,32 +8654,32 @@ msgstr "Dieses Formular offen lassen" msgid "Enter a valid number" msgstr "Gib eine gültige Nummer ein" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Fehler in Formular" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "Eingabe leeren" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "Dateispalte" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "Feldname" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "Spalten auswählen" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index 5807253d7d..c77d85de2b 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -25,20 +25,20 @@ msgstr "Το API endpoint δε βρέθηκε" msgid "Error details can be found in the admin panel" msgstr "Μπορείτε να βρείτε λεπτομέρειες σφάλματος στον πίνακα διαχείρισης" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Εισάγετε ημερομηνία" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" msgid "Supplied URL is not a valid image file" msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Διπλότυπο serial number: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Μη έγκυρη ποσότητα" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Κενό σειριακό αριθμό συμβολοσειράς" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Μη έγκυρο εύρος ομάδας: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Μη έγκυρη ομάδα: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Μη έγκυρη ακολουθία ομάδας: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Μη έγκυρη ομάδα {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Δεν βρέθηκαν σειριακοί αριθμοί" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Ο αριθμός μοναδικών σειριακών αριθμών ({s}) πρέπει να αντιστοιχεί στην ποσότητα ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισάγατε" @@ -200,7 +189,7 @@ msgstr "Το αρχείο λείπει" msgid "Missing external link" msgstr "Λείπει ο εξωτερικός σύνδεσμος" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Επιλέξτε αρχείο για επισύναψη" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Επιλέξτε αρχείο για επισύναψη" msgid "Link" msgstr "Σύνδεσμος" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" @@ -234,10 +223,10 @@ msgstr "Σχόλιο" msgid "File comment" msgstr "Σχόλιο αρχείου" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Σφάλμα κατά τη μετονομασία" msgid "Invalid choice" msgstr "Μη έγκυρη επιλογή" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Όνομα" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Σφάλμα διακομιστή" msgid "An error has been logged by the server." msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Πρέπει να είναι αριθμός" @@ -425,103 +414,103 @@ msgstr "Διεύθυνση URL του αρχείου απομακρυσμένη msgid "Downloading images from remote URL is not enabled" msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Τσέχικα" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Γερμανικά" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Ελληνικά" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Αγγλικά" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Ισπανικά" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Ισπανικά (Μεξικό)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Φαρσί / Περσικά" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Γαλλικά" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Εβραϊκά" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Ούγγρικα" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Ιταλικά" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Ιαπωνικά" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Κορεάτικα" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Dutch" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Νορβηγικά" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Πολωνικά" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Πορτογαλικά" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Πορτογαλικά (Βραζιλίας)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Ρωσικά" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Σουηδικά" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Ταϊλανδέζικα" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Τούρκικα" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Βιετναμέζικα" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Κινέζικα" @@ -688,33 +677,24 @@ msgstr "Λήφθηκε έναντι εντολής αγοράς" msgid "Production" msgstr "Παραγωγή" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Μη έγκυρος κωδικός συναλλάγματος" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Μη έγκυρος χαρακτήρας στο όνομα εξαρτήματος" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "Το IPN πρέπει να ταιριάζει με το μοτίβο regex {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Η αναφορά πρέπει να ταιριάζει με το μοτίβο {pattern}" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Η μέση τιμή δεν πρέπει να είναι αρνητική" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Η μέση τιμή δεν πρέπει να υπερβαίνει το 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "Μη έγκυρη τιμή για υπέρβαση" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Αναφορά Παραγγελίας Κατασκευής" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Κωδικός Παραγγελίας Πωλήσεων" msgid "SalesOrder to which this build is allocated" msgstr "SalesOrder στην οποία έχει διατεθεί αυτό το build" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Τοποθεσία Προέλευσης" @@ -888,16 +868,16 @@ msgstr "Κατάσταση Κατασκευής" msgid "Build status code" msgstr "Κωδικός κατάστασης κατασκευής" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Κωδικός Παρτίδας" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Ημερομηνία Δημιουργίας" @@ -930,7 +910,7 @@ msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελ #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Υπεύθυνος για αυτή την παραγγελία κατα #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Εξωτερικοί σύνδεσμοι" @@ -1008,9 +988,9 @@ msgstr "Κατασκευή" msgid "Build to allocate parts" msgstr "Κατασκευή για εκχώρηση τμημάτων" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Στοιχείο Αποθέματος" msgid "Source stock item" msgstr "Στοιχείο πηγαίου αποθέματος" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Εγκατάσταση σε" msgid "Destination stock item" msgstr "Αποθήκη προορισμού" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "Κατασκευή Εξόδου" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "Το εξερχόμενο μέρος δεν ταιριάζει με το μέρος BuildOrder" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "Αυτή η έξοδος κατασκευής δεν έχει εκχωρηθεί πλήρως" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "Ακέραιη ποσότητα που απαιτείται για ανιχνεύσιμα μέρη" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς ο λογαριασμός των υλικών περιέχει ανιχνεύσιμα μέρη" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Σειριακοί αριθμοί" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Εισάγετε ποσότητα για την έξοδο κατασκευής" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 1ed342157d..125f05801b 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-12 05:36+0000\n" +"POT-Creation-Date: 2022-10-16 13:10+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -426,103 +426,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:613 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:614 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:623 msgid "German" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:625 msgid "English" msgstr "" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:629 msgid "French" msgstr "" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "" @@ -5738,23 +5738,23 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:51 plugin/base/barcodes/api.py:109 +#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:110 msgid "Must provide barcode_data parameter" msgstr "" -#: plugin/base/barcodes/api.py:81 +#: plugin/base/barcodes/api.py:82 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:85 +#: plugin/base/barcodes/api.py:86 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:124 +#: plugin/base/barcodes/api.py:125 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:210 +#: plugin/base/barcodes/api.py:222 msgid "No match found for provided value" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 6ff248a655..830fd531e3 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -25,20 +25,20 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "" @@ -234,10 +223,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po index 1ed342157d..125f05801b 100644 --- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-12 05:36+0000\n" +"POT-Creation-Date: 2022-10-16 13:10+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -426,103 +426,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:613 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:614 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:623 msgid "German" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:625 msgid "English" msgstr "" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:629 msgid "French" msgstr "" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "" @@ -5738,23 +5738,23 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:51 plugin/base/barcodes/api.py:109 +#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:110 msgid "Must provide barcode_data parameter" msgstr "" -#: plugin/base/barcodes/api.py:81 +#: plugin/base/barcodes/api.py:82 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:85 +#: plugin/base/barcodes/api.py:86 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:124 +#: plugin/base/barcodes/api.py:125 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:210 +#: plugin/base/barcodes/api.py:222 msgid "No match found for provided value" msgstr "" diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po index 04dc9311c2..393261f89f 100644 --- a/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -25,20 +25,20 @@ msgstr "Address e API peida nashod" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "" @@ -234,10 +223,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 8ceef2bb13..775f7fda14 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:43\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -25,20 +25,20 @@ msgstr "Point de terminaison de l'API introuvable" msgid "Error details can be found in the admin panel" msgstr "Les détails de l'erreur peuvent être trouvées dans le panneau d'administration" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Entrer la date" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "Le serveur distant a renvoyé une réponse vide" msgid "Supplied URL is not a valid image file" msgstr "L'URL fournie n'est pas un fichier image valide" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Dupliquer le numéro : {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Chaîne de numéro de série vide" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Plage de groupe invalide : {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Groupe invalide : {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Séquence de groupe invalide : {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Invalide/aucun groupe {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Aucun numéro de série trouvé" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "Fichier manquant" msgid "Missing external link" msgstr "Lien externe manquant" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Sélectionnez un fichier à joindre" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Sélectionnez un fichier à joindre" msgid "Link" msgstr "Lien" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Lien vers une url externe" @@ -234,10 +223,10 @@ msgstr "Commentaire" msgid "File comment" msgstr "Commentaire du fichier" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Erreur lors du renommage du fichier" msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Nom" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Erreur serveur" msgid "An error has been logged by the server." msgstr "Une erreur a été enregistrée par le serveur." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Doit être un nombre valide" @@ -425,103 +414,103 @@ msgstr "URL du fichier image distant" msgid "Downloading images from remote URL is not enabled" msgstr "Le téléchargement des images depuis une URL distante n'est pas activé" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Tchèque" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "Danois" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Allemand" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Grec" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Anglais" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Espagnol" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Espagnol (Mexique)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Farsi / Perse" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Français" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Hébreu" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Hongrois" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Italien" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Japonais" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Coréen" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Néerlandais" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norvégien" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Polonais" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portugais" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portugais (Brésilien)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Russe" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Suédois" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Thaïlandais" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Turc" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnamien" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Chinois" @@ -688,33 +677,24 @@ msgstr "Reçu contre bon de commande" msgid "Production" msgstr "Fabrication" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Code de devise invalide" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Caractère invalide dans le nom de la pièce" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "L'IPN doit correspondre au modèle de regex {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "La référence doit correspondre au modèle {pattern}" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "La valeur de surplus ne doit pas être négative" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Le surplus ne doit pas dépasser 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "Valeur invalide pour le dépassement" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "BuildOrder associé a cette fabrication" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Bon de commande de référence" msgid "SalesOrder to which this build is allocated" msgstr "Commande de vente à laquelle cette construction est allouée" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Emplacement d'origine" @@ -888,16 +868,16 @@ msgstr "État de la construction" msgid "Build status code" msgstr "Code de statut de construction" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Code de lot" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Code de lot pour ce build output" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Date de création" @@ -930,7 +910,7 @@ msgstr "Utilisateur ayant émis cette commande de construction" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Utilisateur responsable de cette commande de construction" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Lien Externe" @@ -1008,9 +988,9 @@ msgstr "Assemblage" msgid "Build to allocate parts" msgstr "Construction à laquelle allouer des pièces" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Article en stock" msgid "Source stock item" msgstr "Stock d'origine de l'article" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Installer dans" msgid "Destination stock item" msgstr "Stock de destination de l'article" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "Sortie d'assemblage" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "L'ordre de production ne correspond pas à l'ordre parent" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "La pièce en sortie ne correspond pas à la pièce de l'ordre de construction" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "Cet ordre de production a déjà été produit" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "Cet ordre de production n'est pas complètement attribué" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Entrer la quantité désiré pour la fabrication" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "Quantité entière requise pour les pièces à suivre" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Quantité entière requise, car la facture de matériaux contient des pièces à puce" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Numéros de série" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Entrer les numéros de séries pour la fabrication" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "Allouer automatiquement les numéros de série" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "Affecter automatiquement les éléments requis avec les numéros de série correspondants" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" -msgstr "Le numéro de série suivant existe déjà" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" +msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "Une liste d'ordre de production doit être fourni" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "Une liste d'ordre de production doit être fourni" msgid "Location" msgstr "Emplacement" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "Emplacement des ordres de production achevés" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "Emplacement des ordres de production achevés" msgid "Status" msgstr "État" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "Accepter l'allocation incomplète" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "Compléter les sorties si le stock n'a pas été entièrement alloué" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "Supprimer le stock alloué" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "Soustraire tout stock qui a déjà été alloué à cette construction" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "Supprimer les sorties incomplètes" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "Supprimer toutes les sorties de construction qui n'ont pas été complétées" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "Accepter comme consommé par cet ordre de construction" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "Certains articles en stock ont été suralloués" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "Accepter les non-alloués" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepter les articles de stock qui n'ont pas été complètement alloués à cette ordre de production" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "Le stock requis n'a pas encore été totalement alloué" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "Accepter les incomplèts" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accepter que tous les ordres de production n'aient pas encore été achevés" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "La quantité nécessaire n'a pas encore été complétée" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "L'ordre de production a des sorties incomplètes" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "Article de la nomenclature" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "Sortie d'assemblage" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "La sortie de la construction doit pointer vers la même version" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part doit pointer sur la même pièce que l'ordre de construction" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "L'article doit être en stock" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantité disponible ({q}) dépassée" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "La sortie de construction doit être spécifiée pour l'allocation des pièces tracées" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "La sortie de la compilation ne peut pas être spécifiée pour l'allocation des pièces non suivies" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "Cet article de stock a déjà été alloué à cette sortie de construction" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "Les éléments d'allocation doivent être fournis" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Emplacement de stock où les pièces doivent être fournies (laisser vide pour les prendre à partir de n'importe quel endroit)" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "Emplacements exclus" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "Exclure les articles en stock de cet emplacement sélectionné" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "Stock interchangeable" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Les articles en stock à plusieurs emplacements peuvent être utilisés de manière interchangeable" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "Stock de substitution" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "Autoriser l'allocation des pièces de remplacement" @@ -1804,853 +1784,869 @@ msgstr "Profondeur de l'arborescence" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profondeur de l'arborescence par défaut. Les niveaux plus profonds peuvent être chargés au fur et à mesure qu'ils sont nécessaires." -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Support des code-barres" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "Activer le support du scanner de code-barres" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "Prise en charge de la webcam code-barres" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "Autoriser la numérisation de codes-barres via la webcam dans le navigateur" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "Autoriser les IPN dupliqués" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "Permettre à plusieurs pièces de partager le même IPN" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "Autoriser l'édition de l'IPN" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "Copier les données de la pièce" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "Copier les données des paramètres de la pièce" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "Copier les données des paramètres par défaut lors de la duplication d'une pièce" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "Copier les données de test de la pièce" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "Copier les données de test par défaut lors de la duplication d'une pièce" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "Copier les templates de paramètres de catégorie" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "Copier les templates de paramètres de la catégorie lors de la création d'une pièce" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "Modèle" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "Assemblage" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "Les composantes peuvent être assemblées à partir d'autres composants par défaut" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "Composant" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "Les composantes peuvent être utilisées comme sous-composants par défaut" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "Achetable" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "Vendable" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "Les pièces sont vendables par défaut" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "Traçable" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "Les pièces sont traçables par défaut" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "Les pièces sont virtuelles par défaut" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "Afficher l'import dans les vues" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "Afficher l'assistant d'importation pour certaine vues de produits" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "Afficher le prix dans les formulaires" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "Afficher le prix de la pièce dans certains formulaires" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "Afficher le prix dans la BOM" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "Inclure les informations de prix dans les tableaux de la BOM" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "Historique des prix" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "Afficher l'historique des prix pour la pièce" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "Afficher les pièces connexes" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "Afficher les pièces connexes à une pièce" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "Créer un stock initial" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "Créer le stock initial lors de la création d'une pièce" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "Prix internes" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "Activer les prix internes pour les pièces" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "Prix interne comme prix nomenclature" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Utiliser le prix interne (si définie) dans le calcul du prix nomenclature" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "Format d'affichage du nom de la pièce" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "Format pour afficher le nom de la pièce" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "Activer l'impression d'étiquettes" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "Activer l'impression d'étiquettes depuis l'interface Web" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "Étiquette image DPI" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Résolution DPI lors de la génération de fichiers image pour fournir aux plugins d'impression d'étiquettes" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "Activer les rapports" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "Activer la génération de rapports" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "Mode Débogage" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "Générer des rapports en mode debug (sortie HTML)" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "Taille de la page" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "Taille de page par défaut pour les rapports PDF" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "Activer les rapports de test" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "Activer la génération de rapports de test" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "Joindre des rapports de test" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Lors de l'impression d'un rapport de test, joignez une copie du rapport de test à l'article en stock associé" -#: common/models.py:1136 +#: common/models.py:1143 +msgid "Globally Unique Serials" +msgstr "" + +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" +msgstr "" + +#: common/models.py:1150 msgid "Batch Code Template" msgstr "Modèle de code de lot" -#: common/models.py:1137 +#: common/models.py:1151 msgid "Template for generating default batch codes for stock items" msgstr "Modèle pour générer des codes par défaut pour les articles en stock" -#: common/models.py:1142 +#: common/models.py:1156 msgid "Stock Expiry" msgstr "Expiration du stock" -#: common/models.py:1143 +#: common/models.py:1157 msgid "Enable stock expiry functionality" msgstr "Activer la fonctionnalité d'expiration du stock" -#: common/models.py:1149 +#: common/models.py:1163 msgid "Sell Expired Stock" msgstr "Vendre le stock expiré" -#: common/models.py:1150 +#: common/models.py:1164 msgid "Allow sale of expired stock" msgstr "Autoriser la vente de stock expiré" -#: common/models.py:1156 +#: common/models.py:1170 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1157 +#: common/models.py:1171 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1159 +#: common/models.py:1173 msgid "days" msgstr "jours" -#: common/models.py:1164 +#: common/models.py:1178 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1179 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1185 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1172 +#: common/models.py:1186 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1178 +#: common/models.py:1192 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1179 +#: common/models.py:1193 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1184 +#: common/models.py:1198 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1185 +#: common/models.py:1199 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1191 +#: common/models.py:1205 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1192 +#: common/models.py:1206 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1198 +#: common/models.py:1212 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1199 +#: common/models.py:1213 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1205 +#: common/models.py:1219 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1206 +#: common/models.py:1220 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1213 +#: common/models.py:1227 msgid "Enable password forgot" msgstr "Activer les mots de passe oubliés" -#: common/models.py:1214 +#: common/models.py:1228 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1220 +#: common/models.py:1234 msgid "Enable registration" msgstr "Activer les inscriptions" -#: common/models.py:1221 +#: common/models.py:1235 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1227 +#: common/models.py:1241 msgid "Enable SSO" msgstr "Activer le SSO" -#: common/models.py:1228 +#: common/models.py:1242 msgid "Enable SSO on the login pages" msgstr "Activer le SSO sur les pages de connexion" -#: common/models.py:1234 +#: common/models.py:1248 msgid "Email required" msgstr "Email requis" -#: common/models.py:1235 +#: common/models.py:1249 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1241 +#: common/models.py:1255 msgid "Auto-fill SSO users" msgstr "Saisie automatique des utilisateurs SSO" -#: common/models.py:1242 +#: common/models.py:1256 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1248 +#: common/models.py:1262 msgid "Mail twice" msgstr "Courriel en double" -#: common/models.py:1249 +#: common/models.py:1263 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1255 +#: common/models.py:1269 msgid "Password twice" msgstr "" -#: common/models.py:1256 +#: common/models.py:1270 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1262 +#: common/models.py:1276 msgid "Group on signup" msgstr "" -#: common/models.py:1263 +#: common/models.py:1277 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1269 +#: common/models.py:1283 msgid "Enforce MFA" msgstr "" -#: common/models.py:1270 +#: common/models.py:1284 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1276 +#: common/models.py:1290 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1277 +#: common/models.py:1291 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1284 +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "Activer l'intégration de plugins" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "Activer l'intégration de plugin pour ajouter des apps" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "Afficher les composants suivis" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "Afficher les composants suivis sur l'écran d'accueil" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "Afficher les derniers composants sur la page d'accueil" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "Nombre de composants récents" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "Afficher le stock épuisé" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "Afficher les stocks épuisés sur la page d'accueil" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "Afficher le stock nécessaire" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "Format de date" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "Format préféré pour l'affichage des dates" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "Prix" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "Actif" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "Jeton" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "Confidentiel" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "ID message" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "Identifiant unique pour ce message" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "Hôte" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "Hôte à partir duquel ce message a été reçu" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "Entête" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "En-tête de ce message" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "Corps" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "Corps de ce message" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "Le travail sur ce message est-il terminé ?" @@ -2739,6 +2735,10 @@ msgstr "Articles reçus" msgid "Items have been received against a purchase order" msgstr "Des articles d'un bon de commande ont été reçus" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "Point de contact" msgid "Link to external company information" msgstr "Lien externe vers les informations de l'entreprise" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "Devise" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "Valeur" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "Description de la pièce du fournisseur" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "Note" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "coût de base" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "Frais minimums (par exemple frais de stock)" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "Conditionnement" @@ -3031,7 +3031,7 @@ msgstr "Nombre de paquet" msgid "Unit quantity supplied in a single pack" msgstr "Nombre d'unités fournies dans un seul paquet" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "plusieurs" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "Télécharger l'image depuis l'URL" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "Téléphone" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "Charger une image" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "Télécharger une image" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "Articles en stock assignés" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "Reçu" msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "Envoi" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "Devise *" msgid "Order cannot be cancelled" msgstr "La commande ne peut pas être annulée" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "Le code-barres est déjà utilisé" msgid "An integer quantity must be provided for trackable parts" msgstr "Une quantité entière doit être fournie pour les pièces tracables" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "Entrez les numéros de série à allouer" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "Aucune correspondance trouvée pour les numéros de série suivants" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "Les numéros de série suivants sont déjà alloués" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Catégorie de composant" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" -msgstr "Les prochains numéros de série disponibles sont" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" +msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "Le prochain numéro de série disponible est" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "Le numéro de série le plus récent est" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "Description du composant" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "Catégorie" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "Révision" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "Requis" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "Données" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "ID de composant" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Surplus" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "Dernier numéro de série" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "Rechercher un numéro de série" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "Calculer" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "Résultat" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "Propriétaire" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "Sélectionner un propriétaire" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "Il existe déjà un article en stock avec ce numéro de série" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantité doit être de 1 pour un article avec un numéro de série" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "Numéro de série pour cet article" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "Les numéros de série doivent être une liste de nombres entiers" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "La quantité ne correspond pas au nombre de numéros de série" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Les numéros de série existent déja : {exists}" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "Entrez les numéros de série pour les nouveaux articles" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "Les numéros de série existent déjà" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 94efb01e61..6aef201a9f 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -25,20 +25,20 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "הזן תאריך סיום" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "קבוצה שגויה: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "קבוצה שגויה / לא נמצאה {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "מספרים סידוריים לא נמצאו" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "קובץ חסר" msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "בחר קובץ לצירוף" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "בחר קובץ לצירוף" msgid "Link" msgstr "קישור" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "קישור חיצוני" @@ -234,10 +223,10 @@ msgstr "הערה" msgid "File comment" msgstr "הערת קובץ" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "שגיאה בשינוי שם פריט" msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "שם" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "גרמנית" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "יוונית" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "אנגלית" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "ספרדית" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "ספרדית (מקסיקנית)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "צרפתית" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "עברית" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "איטלקית" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "יפנית" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "קוריאנית" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "הולנדית" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "נורווגית" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "פולנית" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "רוסית" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "שוודית" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "תאילנדית" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "טורקית" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "ווייטנאמית" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "סינית" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "ייצור" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "קוד מטבע לא מאושר" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "מספרים סידוריים" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index 4bedee9d8e..39cf0c4e80 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -25,20 +25,20 @@ msgstr "API funkciót nem találom" msgid "Error details can be found in the admin panel" msgstr "A hiba részleteit megtalálod az admin panelen" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Dátum megadása" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "A kiszolgáló üres választ adott" msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Duplikált sorozatszám: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Nem megfelelő mennyiség" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Üres sorozatszám" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Érvénytelen csoport tartomány: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Érvénytelen csoport: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Érvénytelen csoport szekvencia: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Érvénytelen vagy nemlétező csoport {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Nem található sorozatszám" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "A megadott számú egyedi sorozatszám ({s}) meg kell egyezzen a darabszámmal ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "HTML tag-ek eltávolítása ebből az értékből" @@ -200,7 +189,7 @@ msgstr "Hiányzó fájl" msgid "Missing external link" msgstr "Hiányzó külső link" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Válaszd ki a mellekelni kívánt fájlt" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Válaszd ki a mellekelni kívánt fájlt" msgid "Link" msgstr "Link" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Link külső URL-re" @@ -234,10 +223,10 @@ msgstr "Megjegyzés" msgid "File comment" msgstr "Leírás, bővebb infó" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Hiba a fájl átnevezésekor" msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Név" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Kiszolgálóhiba" msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" @@ -425,103 +414,103 @@ msgstr "A távoli kép URL-je" msgid "Downloading images from remote URL is not enabled" msgstr "Képek letöltése távoli URL-ről nem engedélyezett" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Cseh" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "Dán" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Német" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Görög" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Angol" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Spanyol (Mexikói)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Fárszi/Perzsa" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Francia" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Héber" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Magyar" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Olasz" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Japán" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Koreai" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Holland" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norvég" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Lengyel" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portugál" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portugál (Brazíliai)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Orosz" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Svéd" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Tháj" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Török" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnámi" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Kínai" @@ -688,33 +677,24 @@ msgstr "Megrendelésre érkezett" msgid "Production" msgstr "Folyamatban" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Érvénytelen pénznem kód" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Érvénytelen karakter az alkatrész névben" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN mezőnek egyeznie kell a '{pat}' mintával" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Referenciának egyeznie kell a '{pattern}' mintával" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Túlszállítás nem lehet negatív" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Túlszállítás nem lehet több mint 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "Érvénytelen érték a túlszállításra" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Vevői rendelés azonosító" msgid "SalesOrder to which this build is allocated" msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Forrás hely" @@ -888,16 +868,16 @@ msgstr "Gyártási állapot" msgid "Build status code" msgstr "Gyártás státusz kód" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Batch kód" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Batch kód a gyártás kimenetéhez" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Létrehozás dátuma" @@ -930,7 +910,7 @@ msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Felhasználó aki felelős ezért a gyártási utasításért" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Külső link" @@ -1008,9 +988,9 @@ msgstr "Gyártás" msgid "Build to allocate parts" msgstr "Gyártás amihez készletet foglaljunk" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Készlet tétel" msgid "Source stock item" msgstr "Forrás készlet tétel" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Beépítés ebbe" msgid "Destination stock item" msgstr "Cél készlet tétel" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "Gyártás kimenet" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "Gyártási kimenet nem egyezik a szülő gyártással" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "Kimeneti alkatrész nem egyezik a gyártási utasításban lévő alkatrésszel" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "Ez a gyártási kimenet már elkészült" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "Ez a gyártási kimenet nincs teljesen lefoglalva" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Add meg a mennyiséget a gyártás kimenetéhez" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyedi követésre kötelezett alkatrészeket tartalmaz" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Sorozatszámok" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Add meg a sorozatszámokat a gyártás kimenetéhez" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "Sorozatszámok automatikus hozzárendelése" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" -msgstr "A következő sorozatszámok már léteznek" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" +msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "A gyártási kimenetek listáját meg kell adni" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "A gyártási kimenetek listáját meg kell adni" msgid "Location" msgstr "Hely" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "A kész gyártási kimenetek helye" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,146 +1151,146 @@ msgstr "A kész gyártási kimenetek helye" msgid "Status" msgstr "Állapot" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "Hiányos foglalás elfogadása" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "Kimenetek befejezése akkor is ha a készlet nem\n" "lett teljesen lefoglalva" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "Lefoglalt készlet levonása" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "Az összes lefoglalt tétel levonása a készletről" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "Befejezetlen kimenetek törlése" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "A nem befejezett gyártási kimenetek törlése" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "Gyártásban fel lett használva" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "Foglalás felszabadítása a készre jelentés előtt" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "Túlfoglalt készlet" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "Hogyyan kezeljük az gyártáshoz rendelt extra készletet" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "Pár készlet tétel túl lett foglalva" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "Kiosztatlanok elfogadása" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Fogadd el hogy a készlet tételek nincsenek teljesen lefoglalva ehhez a gyártási utastáshoz" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "A szükséges készlet nem lett teljesen lefoglalva" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "Befejezetlenek elfogadása" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "Fogadd el hogy a szükséges számú gyártási kimenet nem lett elérve" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "Szükséges gyártási mennyiség nem lett elérve" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "Gyártás kimenet" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "A gyártási kimenetnek ugyanarra a gyártásra kell mutatnia" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part ugyanarra az alkatrészre kell mutasson mint a gyártási utasítás" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "A tételnek kell legyen készlete" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Rendelkezésre álló mennyiség ({q}) túllépve" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "Gyártási kimenetet meg kell adni a követésre kötelezett alkatrészek lefoglalásához" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatrészek lefoglalásához" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "Ez a készlet tétel már le lett foglalva ehhez a gyártási kimenethez" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "A lefoglalandó tételeket meg kell adni" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Készlet hely ahonnan az alkatrészek származnak (hagyd üresen ha bárhonnan)" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "Hely kizárása" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "Készlet tételek kizárása erről a kiválasztott helyről" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "Felcserélhető készlet" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "A különböző helyeken lévő készlet egyenrangúan felhasználható" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "Készlet helyettesítés" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "Helyettesítő alkatrészek foglalásának engedélyezése" @@ -1805,853 +1785,869 @@ msgstr "Fa mélység" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Alapértelmezett mélység a fa nézetekben. A mélyebb szintek betöltődnek ha szükségesek." -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Vonalkód támogatás" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "Vonalkód olvasó engedélyezése" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "Webkamerás vonalkód olvasás" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "Webkamerás kódolvasás engedélyezése a böngészőből" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "IPN reguláris kifejezés" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "Reguláris kifejezés ami illeszkedik az alkatrész IPN-re" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "Többször is előforduló IPN engedélyezése" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "Azonos IPN használható legyen több alkatrész esetén is" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "IPN szerkesztésének engedélyezése" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "IPN megváltoztatásánsak engedélyezése az alkatrész szerkesztése közben" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "Alkatrészjegyzék adatok másolása" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "Alkatrész másoláskor az alkatrészjegyzék adatokat is másoljuk alapból" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "Alkatrész paraméterek másolása" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "Alkatrész másoláskor a paramétereket is másoljuk alapból" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "Alkatrész teszt adatok másolása" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "Alkatrész másoláskor a tesztek adatait is másoljuk alapból" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "Kategória paraméter sablonok másolása" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "Kategória paraméter sablonok másolása alkatrész létrehozásakor" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "Sablon" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "Gyártmány" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "Összetevő" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "Alkatrészek alapból használhatók összetevőként más alkatrészekhez" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "Beszerezhető" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "Értékesíthető" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "Alkatrészek alapból eladhatók legyenek" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "Követésre kötelezett" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "Alkatrészek alapból követésre kötelezettek legyenek" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "Virtuális" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "Alkatrészek alapból virtuálisak legyenek" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "Importálás megjelenítése a nézetekben" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "Import segéd megjelenítése néhány alkatrész nézetben" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "Ár megjelenítése a formokon" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "Alkatrész árak megjelenítése néhány formon" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "Ár megjelenítése az alkatrészjegyzékben" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "Árinformációk megjelenítése az alkatrészjegyzék táblákban" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "Ártörténet megjelenítése" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "Alkatrész ártörténet megjelenítése" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "Kapcsolódó alkatrészek megjelenítése" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "Kezdeti készlet létrehozása" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "Kezdeti készlet megadása az alkatrész létrehozásakor" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "Belső árak" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "Alkatrészekhez belső ár engedélyezése" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "Belső ár alkatrészjegyzék árként" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Belső ár használata (ha van) az alkatrészjegyzék árszámításában" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "Alkatrész név megjelenítés formátuma" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "Formátum az alkatrész név megjelenítéséhez" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "Alkatrész kategória alapértelmezett ikon" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "Alkatrész kategória alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "Címke nyomtatás engedélyezése" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "Címke nyomtatás engedélyezése a web felületről" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "Címke kép DPI" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Képek felbontása amik átadásra kerülnek címkenyomtató pluginoknak" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "Riportok engedélyezése" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "Riportok előállításának engedélyezése" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "Debug mód" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "Riportok előállítása HTML formátumban (hibakereséshez)" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "Lapméret" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "Alapértelmezett lapméret a PDF riportokhoz" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "Teszt riportok engedélyezése" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "Teszt riportok előállításának engedélyezése" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "Teszt riportok hozzáadása" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Teszt riport nyomtatáskor egy másolat hozzáadása a készlet tételhez" -#: common/models.py:1136 +#: common/models.py:1143 +msgid "Globally Unique Serials" +msgstr "" + +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" +msgstr "" + +#: common/models.py:1150 msgid "Batch Code Template" msgstr "Batch kód sablon" -#: common/models.py:1137 +#: common/models.py:1151 msgid "Template for generating default batch codes for stock items" msgstr "Sablon a készlet tételekhez alapértelmezett batch kódok előállításához" -#: common/models.py:1142 +#: common/models.py:1156 msgid "Stock Expiry" msgstr "Készlet lejárata" -#: common/models.py:1143 +#: common/models.py:1157 msgid "Enable stock expiry functionality" msgstr "Készlet lejárat kezelésének engedélyezése" -#: common/models.py:1149 +#: common/models.py:1163 msgid "Sell Expired Stock" msgstr "Lejárt készlet értékesítése" -#: common/models.py:1150 +#: common/models.py:1164 msgid "Allow sale of expired stock" msgstr "Lejárt készlet értékesítésének engedélyezése" -#: common/models.py:1156 +#: common/models.py:1170 msgid "Stock Stale Time" msgstr "Álló készlet ideje" -#: common/models.py:1157 +#: common/models.py:1171 msgid "Number of days stock items are considered stale before expiring" msgstr "Napok száma amennyivel a lejárat előtt a készlet tételeket állottnak vesszük" -#: common/models.py:1159 +#: common/models.py:1173 msgid "days" msgstr "nap" -#: common/models.py:1164 +#: common/models.py:1178 msgid "Build Expired Stock" msgstr "Lejárt készlet gyártása" -#: common/models.py:1165 +#: common/models.py:1179 msgid "Allow building with expired stock" msgstr "Gyártás engedélyezése lejárt készletből" -#: common/models.py:1171 +#: common/models.py:1185 msgid "Stock Ownership Control" msgstr "Készlet tulajdonosok kezelése" -#: common/models.py:1172 +#: common/models.py:1186 msgid "Enable ownership control over stock locations and items" msgstr "Tuajdonosok kezelésének engedélyezése a készlet helyekre és tételekre" -#: common/models.py:1178 +#: common/models.py:1192 msgid "Stock Location Default Icon" msgstr "Hely alapértelmezett ikon" -#: common/models.py:1179 +#: common/models.py:1193 msgid "Stock location default icon (empty means no icon)" msgstr "Hely alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1184 +#: common/models.py:1198 msgid "Build Order Reference Pattern" msgstr "Gyártási utasítás azonosító minta" -#: common/models.py:1185 +#: common/models.py:1199 msgid "Required pattern for generating Build Order reference field" msgstr "Szükséges minta a gyártási utasítás azonosító mező előállításához" -#: common/models.py:1191 +#: common/models.py:1205 msgid "Sales Order Reference Pattern" msgstr "Vevői rendelés azonosító minta" -#: common/models.py:1192 +#: common/models.py:1206 msgid "Required pattern for generating Sales Order reference field" msgstr "Szükséges minta a vevői rendelés azonosító mező előállításához" -#: common/models.py:1198 +#: common/models.py:1212 msgid "Sales Order Default Shipment" msgstr "Vevői rendeléshez alapértelmezett szállítmány" -#: common/models.py:1199 +#: common/models.py:1213 msgid "Enable creation of default shipment with sales orders" msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez" -#: common/models.py:1205 +#: common/models.py:1219 msgid "Purchase Order Reference Pattern" msgstr "Beszerzési rendelés azonosító minta" -#: common/models.py:1206 +#: common/models.py:1220 msgid "Required pattern for generating Purchase Order reference field" msgstr "Szükséges minta a beszerzési rendelés azonosító mező előállításához" -#: common/models.py:1213 +#: common/models.py:1227 msgid "Enable password forgot" msgstr "Elfelejtett jelszó engedélyezése" -#: common/models.py:1214 +#: common/models.py:1228 msgid "Enable password forgot function on the login pages" msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon" -#: common/models.py:1220 +#: common/models.py:1234 msgid "Enable registration" msgstr "Regisztráció engedélyezése" -#: common/models.py:1221 +#: common/models.py:1235 msgid "Enable self-registration for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése a bejelentkező oldalon" -#: common/models.py:1227 +#: common/models.py:1241 msgid "Enable SSO" msgstr "SSO engedélyezése" -#: common/models.py:1228 +#: common/models.py:1242 msgid "Enable SSO on the login pages" msgstr "SSO engedélyezése a bejelentkező oldalon" -#: common/models.py:1234 +#: common/models.py:1248 msgid "Email required" msgstr "Email szükséges" -#: common/models.py:1235 +#: common/models.py:1249 msgid "Require user to supply mail on signup" msgstr "Kötelező email megadás regisztrációkor" -#: common/models.py:1241 +#: common/models.py:1255 msgid "Auto-fill SSO users" msgstr "SSO felhasználók automatikus kitöltése" -#: common/models.py:1242 +#: common/models.py:1256 msgid "Automatically fill out user-details from SSO account-data" msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból" -#: common/models.py:1248 +#: common/models.py:1262 msgid "Mail twice" msgstr "Email kétszer" -#: common/models.py:1249 +#: common/models.py:1263 msgid "On signup ask users twice for their mail" msgstr "Regisztráláskor kétszer kérdezze a felhasználó email címét" -#: common/models.py:1255 +#: common/models.py:1269 msgid "Password twice" msgstr "Jelszó kétszer" -#: common/models.py:1256 +#: common/models.py:1270 msgid "On signup ask users twice for their password" msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát" -#: common/models.py:1262 +#: common/models.py:1276 msgid "Group on signup" msgstr "Csoport regisztráláskor" -#: common/models.py:1263 +#: common/models.py:1277 msgid "Group to which new users are assigned on registration" msgstr "Csoport amihez a frissen regisztrált felhasználók hozzá lesznek rendelve" -#: common/models.py:1269 +#: common/models.py:1283 msgid "Enforce MFA" msgstr "Többfaktoros hitelesítés kényszerítése" -#: common/models.py:1270 +#: common/models.py:1284 msgid "Users must use multifactor security." msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk." -#: common/models.py:1276 +#: common/models.py:1290 msgid "Check plugins on startup" msgstr "Pluginok ellenőrzése indításkor" -#: common/models.py:1277 +#: common/models.py:1291 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)" -#: common/models.py:1284 +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "Plugin aláírások ellenőrzése" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "Pluginok aláírásainak ellenőrzése és megjelenítése" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "URL integráció engedélyezése" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "Navigációs integráció engedélyezése" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "Navigációs integráció engedélyezése a pluginok számára" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "App integráció engedélyezése" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "App hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "Ütemezés integráció engedélyezése" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "Háttérben futó feladatok hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "Esemény integráció engedélyezése" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "Értesítésre beállított alkatrészek megjelenítése" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "Alkatrész értesítések megjelenítése a főoldalon" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "Értesítésre beállított kategóriák megjelenítése" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "Legújabb alkatrészek megjelenítése" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "Legújabb alkatrészek megjelenítése a főoldalon" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "Legfrissebb alkatrész szám" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "Főoldalon megjelenítendő legújabb alkatrészek" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "Jóváhagyás nélküli alkatrészjegyzékek megjelenítése" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "Legfrissebb készlet változások megjelenítése" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "Legfrissebb készlet mennyiség" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "Főoldalon megjelenítendő legújabb készlet tételek száma" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "Alacsony készlet megjelenítése" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "Alacsony készletek megjelenítése a főoldalon" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "Kimerült készlet megjelenítése" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "Kimerült készletek megjelenítése a főoldalon" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "Gyártáshoz szükséges készlet megjelenítése" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "Lejárt készlet megjelenítése" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "Lejárt készletek megjelenítése a főoldalon" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "Állott készlet megjelenítése" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "Álló készletek megjelenítése a főoldalon" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "Függő gyártások megjelenítése" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "Késésben lévő gyártások megjelenítése" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "Késésben lévő gyártások megjelenítése a főoldalon" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "Kintlévő beszerzési rendelések megjelenítése" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "Késésben lévő megrendelések megjelenítése" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "Késésben lévő megrendelések megjelenítése a főoldalon" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "Függő vevői rendelések megjelenítése" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "Függő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "Késésben lévő vevői rendelések megjelenítése" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "Beágyazott címke megjelenítés" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "Beágyazott riport megjelenítés" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "Alkatrészek keresése" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "Alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "Beszállítói alkatrészek keresése" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "Gyártói alkatrészek keresése" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "Kategóriák keresése" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "Készlet keresése" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "Készlet tételek megjelenítése a keresési előnézetben" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "Nem elérhető készlet tételek elrejtése" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "Helyek keresése" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "Készlet helyek megjelenítése a keresési előnézetben" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "Cégek keresése" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "Cégek megjelenítése a keresési előnézetben" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "Beszerzési rendelések keresése" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktív beszerzési rendelések kihagyása" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "Vevői rendelések keresése" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "Vevői rendelések megjelenítése a keresési előnézetben" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "Inaktív vevői rendelések kihagyása" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "Keresési előnézet eredményei" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "Mennyiség megjelenítése a formokon" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "ESC billentyű zárja be a formot" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "ESC billentyű használata a modális formok bezárásához" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "Rögzített menüsor" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "A menü pozíciója mindig rögzítve a lap tetején" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "Dátum formátum" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "Alkatrész ütemezési információk megjelenítése" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "Táblázati szöveg hossz" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "Maximális szöveg hossz ami megjelenhet a táblázatokban" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "Árlépcső mennyiség" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "Ár" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "Egységár egy meghatározott mennyiség esetén" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "Végpont" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "Végpont ahol ez a webhook érkezik" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "Webhook neve" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2659,67 +2655,67 @@ msgstr "Webhook neve" msgid "Active" msgstr "Aktív" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "Token" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "Token a hozzáféréshez" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "Titok" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "Megosztott titok a HMAC-hoz" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "Üzenet azonosító" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "Egyedi azonosító ehhez az üzenethez" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "Kiszolgáló" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "Kiszolgáló ahonnan ez az üzenet érkezett" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "Fejléc" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "Üzenet fejléce" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "Törzs" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "Üzenet törzse" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "Végpont amin ez az üzenet érkezett" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "Dolgozott rajta" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" @@ -2740,6 +2736,10 @@ msgstr "Készlet érkezett" msgid "Items have been received against a purchase order" msgstr "Készlet érkezett egy beszerzési megrendeléshez" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2826,7 +2826,7 @@ msgstr "Kapcsolattartó" msgid "Link to external company information" msgstr "Link a külső céginformációhoz" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "Kép" @@ -2868,7 +2868,7 @@ msgstr "Pénznem" msgid "Default currency used for this company" msgstr "Cég által használt alapértelmezett pénznem" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2929,7 +2929,7 @@ msgstr "Paraméter neve" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2939,7 +2939,7 @@ msgstr "Érték" msgid "Parameter value" msgstr "Paraméter értéke" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2995,22 +2995,22 @@ msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "Megjegyzés" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "alap költség" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "Csomagolás" @@ -3032,7 +3032,7 @@ msgstr "Csomagolási mennyiség" msgid "Unit quantity supplied in a single pack" msgstr "Egy csomagban lévő mennyiség" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "többszörös" @@ -3118,8 +3118,8 @@ msgid "Download image from URL" msgstr "Kép letöltése URL-ről" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3137,12 +3137,12 @@ msgid "Phone" msgstr "Telefonszám" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "Kép feltöltése" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "Kép letöltése" @@ -3342,7 +3342,7 @@ msgid "Assigned Stock Items" msgstr "Hozzárendelt készlet tételek" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3810,7 +3810,7 @@ msgstr "Beérkezett" msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3857,8 +3857,8 @@ msgstr "Ellenőrizte" msgid "User who checked this shipment" msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "Szállítmány" @@ -3910,7 +3910,7 @@ msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész" msgid "Allocation quantity cannot exceed stock quantity" msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" @@ -3950,11 +3950,11 @@ msgstr "Pénznem" msgid "Order cannot be cancelled" msgstr "A rendelést nem lehet törölni" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "Rendelés lezárása teljesítetlen sortételek esetén is" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "A rendelésben teljesítetlen sortételek vannak" @@ -3982,7 +3982,7 @@ msgstr "A beszállítónak egyeznie kell a beszerzési rendelésben lévővel" msgid "Purchase order must match supplier" msgstr "A beszerzési rendelésnek egyeznie kell a beszállítóval" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "Sortétel" @@ -3990,7 +3990,7 @@ msgstr "Sortétel" msgid "Line item does not match purchase order" msgstr "Sortétel nem egyezik a beszerzési megrendeléssel" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "Válassz cél helyet a beérkezett tételeknek" @@ -4014,51 +4014,51 @@ msgstr "Ez a vonalkód már használva van" msgid "An integer quantity must be provided for trackable parts" msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett alkatrészeknél" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "Sortételt meg kell adni" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "A cél helyet kötelező megadni" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "Megadott vonalkódoknak egyedieknek kel lenniük" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "Eladási ár pénzneme" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "Nincsenek szállítmány részletek megadva" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "Sortétel nincs hozzárendelve ehhez a rendeléshez" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "Mennyiség pozitív kell legyen" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "Írd be a sorozatszámokat a kiosztáshoz" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "Szállítmány kiszállítva" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "Szállítmány nincs hozzárendelve ehhez a rendeléshez" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "Nincs találat a következő sorozatszámokra" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "A következő sorozatszámok már ki lettek osztva" @@ -4071,11 +4071,11 @@ msgstr "Késésben lévő beszerzés" msgid "Purchase order {po} is now overdue" msgstr "A {po} beszerzési rendelés most már késésben van" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "Késésben lévő vevői rendelés" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "A {so} vevői rendelés most már késésben van" @@ -4399,8 +4399,8 @@ msgstr "Hely megadása a kezdeti alkarész készlethez" msgid "This field is required" msgstr "Ez a mező kötelező" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "Alapértelmezett hely" @@ -4445,7 +4445,7 @@ msgstr "Ikon" msgid "Icon (optional)" msgstr "Ikon (opcionális)" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" @@ -4476,56 +4476,48 @@ msgstr "Hibás választás a szülő alkatrészre" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "A '{p1}' alkatrész a '{p2}' alkatrészjegyzékében már szerepel (rekurzív)" -#: part/models.py:628 -msgid "Next available serial numbers are" -msgstr "A következő szabad sorozatszámok" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" +msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "A következő szabad sorozatszám" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "A legutóbbi sorozatszám" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "Azonos IPN nem engedélyezett az alkatrész beállításokban" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "Alkatrész neve" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "Sablon-e" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "Ez egy sablon alkatrész?" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "Ez az alkatrész egy másik változata?" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "Ebből a sablonból" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "Alkatrész leírása" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "Kulcsszavak" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredményekben" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4533,367 +4525,367 @@ msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredmén msgid "Category" msgstr "Kategória" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "Alkatrész kategória" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "IPN" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "Belső cikkszám" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "Alkatrész változat vagy verziószám (pl. szín, hossz, revízió, stb.)" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "Változat" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "Alapban hol tároljuk ezt az alkatrészt?" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "Alapértelmezett beszállítói alkatrész" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "Alapértelmezett lejárat" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "Lejárati idő (napban) ennek az alkatrésznek a készleteire" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "Minimális készlet" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "Minimálisan megengedett készlet mennyiség" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "Az alkatrész raktározási mértékegységei" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "Gyártható-e ez az alkatrész más alkatrészekből?" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "Felhasználható-e ez az alkatrész más alkatrészek gyártásához?" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "Kell-e külön követni az egyes példányait ennek az alkatrésznek?" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "Rendelhető-e ez az alkatrész egy külső beszállítótól?" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "Értékesíthető-e önmagában ez az alkatrész a vevőknek?" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "Aktív-e ez az alkatrész?" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ez egy virtuális nem megfogható alkatrész, pl. szoftver vagy licenc?" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "Alkatrész megjegyzések" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "Alkatrészjegyzék ellenőrző összeg" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "Tárolt alkatrészjegyzék ellenőrző összeg" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "Alkatrészjegyzéket ellenőrizte" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "Alkatrészjegyzék ellenőrzési dátuma" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "Létrehozó" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "Teszt sablont csak követésre kötelezett alkatrészhez lehet csinálni" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "Erre az alkatrészre már létezik teszt ilyen névvel" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "Kötelező" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "Érvénytelen karakter ({c}) a sablon nevében" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "Paraméter mértékegysége" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "Paraméter leírása" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "Adat" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "Alkatrész ID vagy alkatrész név" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "Alkatrész ID" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "Egyedi alkatrész ID értéke" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "Alkatrész neve" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "Alkatrész IPN" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "Szint" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "Opcionális" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "Fogyóeszköz" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Ez a BOM tétel fogyóeszköz (készlete nincs követve a gyártásban)" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "Örökölt" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "Változatok" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "1.rész" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "2.rész" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "Alkatrész kapcsolat nem hozható létre önmagával" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "Már létezik duplikált alkatrész kapcsolat" @@ -5414,7 +5406,7 @@ msgid "Inactive" msgstr "Inaktív" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "Alkatrész részletei" @@ -5453,28 +5445,28 @@ msgstr "Gyártásban" msgid "Minimum stock level" msgstr "Minimális készlet" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "Legutolsó sorozatszám" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "Sorozatszámra keresés" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "Vonalkód hozzárendelése az alkatrészhez" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "Számítás" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "Nincs egyező kép" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "Részletek elrejtése" @@ -5832,6 +5824,20 @@ msgstr "Nincs szerző" msgid "No date found" msgstr "Nincs dátum" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "Beszerzési rendelések engedélyezése" @@ -6006,7 +6012,7 @@ msgid "Stock Item Test Report" msgstr "Készlet tétel teszt riport" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6020,12 +6026,12 @@ msgid "Test Results" msgstr "Teszt eredmények" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "Teszt" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "Eredmény" @@ -6060,241 +6066,237 @@ msgstr "Egy érvényes alkatrészt meg kell adni" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "Tulajdonos" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "Tulajdonos kiválasztása" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "Létezik már készlet tétel ilyen a sorozatszámmal" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "Virtuális alkatrészből nem lehet készletet létrehozni" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "A alkatrész típus ('{pf}') {pe} kell legyen" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "Mennyiség 1 kell legyen a sorozatszámmal rendelkező tételnél" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Nem lehet sorozatszámot megadni ha a mennyiség több mint egy" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "A tétel nem tartozhat saját magához" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "A tételnek kell legyen gyártási azonosítója ha az is_bulding igaz" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "Gyártási azonosító nem ugyanarra az alkatrész objektumra mutat" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "Szülő készlet tétel" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "Kiindulási alkatrész" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételhez" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Készlet hely" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "Hol található ez az alkatrész?" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "A csomagolása ennek a készlet tételnek itt van tárolva" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "Beépítve ebbe" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "Ez a tétel be van építve egy másik tételbe?" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "Sorozatszám ehhez a tételhez" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "Batch kód ehhez a készlet tételhez" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "Készlet mennyiség" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "Forrás gyártás" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "Gyártás ehhez a készlet tételhez" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "Forrás beszerzési rendelés" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "Beszerzés ehhez a készlet tételhez" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "Cél vevői rendelés" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "Lejárati dátum" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Készlet tétel lejárati dátuma. A készlet lejártnak tekinthető ezután a dátum után" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "Törlés ha kimerül" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "Készlet tétel törlése ha kimerül" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "Készlet tétel megjegyzések" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "Egy egység beszerzési ára a beszerzés időpontjában" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "Alkatrésszé alakítva" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "Az alkatrész nem követésre kötelezett" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "Mennyiség egész szám kell legyen" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "A mennyiség nem lépheti túl a készletet ({n})" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "A sorozatszám egész számok listája kell legyen" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Ezek a sorozatszámok már léteznek: {exists}" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "Készlet tétel beépül egy másikba" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "A készlet tétel más tételeket tartalmaz" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "Teszt neve" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "Tesztek megjegyzései" @@ -6319,7 +6321,7 @@ msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})" msgid "Enter serial numbers for new items" msgstr "Írd be a sorozatszámokat az új tételekhez" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "Cél készlet hely" @@ -6331,99 +6333,99 @@ msgstr "Opcionális megjegyzés mező" msgid "Serial numbers cannot be assigned to this part" msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "A sorozatszámok már léteznek" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "Válaszd ki a beépítésre szánt készlet tételt" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "Készlet tétel nem elérhető" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "A kiválasztott alkatrész nincs az alkatrészjegyzékben" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "Cél hely a kiszedett tételeknek" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "Tranzakció megjegyzés hozzáadása (opcionális)" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "Válassz alkatrészt amire konvertáljuk a készletet" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "A kiválasztott alkatrész nem megfelelő a konverzióhoz" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "Cél hely a visszatérő tételeknek" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "Az alkatrésznek értékesíthetőnek kell lennie" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "A tétel egy vevő rendeléshez foglalt" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "A tétel egy gyártási utasításhoz foglalt" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "Vevő akihez rendeljük a készlet tételeket" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "A kiválasztott cég nem egy vevő" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "Készlet hozzárendelés megjegyzései" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "A készlet tételek listáját meg kell adni" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "Készlet összevonás megjegyzései" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "Nem egyező beszállítók megengedése" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "Különböző beszállítói alkatrészekből származó készletek összevonásának engedélyezése" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "Nem egyező állapotok megjelenítése" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "Különböző állapotú készletek összevonásának engedélyezése" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "Legalább két készlet tételt meg kell adni" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "Készlet tétel elsődleges kulcs értéke" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "Készlet tranzakció megjegyzései" @@ -8653,32 +8655,32 @@ msgstr "Form nyitva tartása" msgid "Enter a valid number" msgstr "Adj meg egy érvényes számot" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Form hibák vannak" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "Nincs eredmény" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "Keresés" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "Bevitel törlése" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "Fájl oszlop" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "Mező név" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "Oszlopok kiválasztása" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 742179aa38..e0b77f9499 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -25,20 +25,20 @@ msgstr "API endpoint tidak ditemukan" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Masukkan tanggal" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "URL yang diberikan bukan file gambar yang valid" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Nomor seri duplikat: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Jumlah yang diberikan tidak valid" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Nomor seri kosong" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Jangkauan grup tidak valid: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Grup tidak valid: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Urutan grup tidak valid: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Grup {group} invalid/tidak ada" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Tidak ada nomor seri ditemukan" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "File tidak ditemukan" msgid "Missing external link" msgstr "Tautan eksternal tidak ditemukan" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Pilih file untuk dilampirkan" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Pilih file untuk dilampirkan" msgid "Link" msgstr "Tautan" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Tautan menuju URL eksternal" @@ -234,10 +223,10 @@ msgstr "Komentar" msgid "File comment" msgstr "Komentar file" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Kesalahan merubah nama file" msgid "Invalid choice" msgstr "Pilihan tidak valid" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Nama" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Terjadi Kesalahan Server" msgid "An error has been logged by the server." msgstr "Sebuah kesalahan telah dicatat oleh server." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Harus berupa angka yang valid" @@ -425,103 +414,103 @@ msgstr "URL file gambar external" msgid "Downloading images from remote URL is not enabled" msgstr "Unduhan gambar dari URL external tidak aktif" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Ceko" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "Denmark" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Jerman" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Yunani" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Inggris" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Spanyol (Meksiko)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Farsi / Persia" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Perancis" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Ibrani" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Hungaria" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Itali" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Jepang" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Korea" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Belanda" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norwegia" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Polandia" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portugis" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portugis (Brasil)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Rusia" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Swedia" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Thai" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Turki" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnam" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Cina" @@ -688,33 +677,24 @@ msgstr "Diterima dari order pembelian" msgid "Production" msgstr "Produksi" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Bukan kode mata uang yang valid" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Terdapat karater yang tidak sah dalam nama bagian" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN harus sesuai dengan pola regex {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Referensi harus sesuai dengan pola {pattern}" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Nilai kelebihan tidak boleh negatif" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Kelebihan tidak boleh melebihi 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "Nilai kelebihan tidak valid" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Referensi Order Produksi" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "Produksi induk dari produksi ini" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Referensi Order Penjualan" msgid "SalesOrder to which this build is allocated" msgstr "Order penjualan yang teralokasikan ke pesanan ini" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Lokasi Sumber" @@ -888,16 +868,16 @@ msgstr "Status pembuatan" msgid "Build status code" msgstr "Kode status pembuatan" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Kode Kelompok" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Kode kelompok untuk hasil produksi ini" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Tanggal Pembuatan" @@ -930,7 +910,7 @@ msgstr "Pengguna yang menyerahkan order ini" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Pengguna yang bertanggung jawab atas order ini" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Tautan eksternal" @@ -1008,9 +988,9 @@ msgstr "Produksi" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Stok Item" msgid "Source stock item" msgstr "Sumber stok item" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Pasang ke" msgid "Destination stock item" msgstr "Tujuan stok item" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "Hasil Produksi" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "Hasil produksi tidak sesuai dengan produksi induk" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "Hasil bagian tidak sesuai dengan bagian dalam order produksi" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "Hasil produksi ini sudah diselesaikan" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "Hasil produksi tidak dialokasikan sepenuhnya" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Masukkan jumlah hasil pesanan" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Jumlah harus lebih besar daripada nol" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "Jumlah bagian yang dapat dilacak harus berupa angka bulat" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Jumlah harus angka bulat karena terdapat bagian yang dapat dilacak dalam daftar barang" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Nomor Seri" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Masukkan nomor seri untuk hasil pesanan" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "Alokasikan nomor seri secara otomatis" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "Alokasikan item yang diperlukan dengan nomor seri yang sesuai secara otomatis" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" -msgstr "Nomor seri berikut sudah ada" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" +msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "Daftar hasil pesanan harus disediakan" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "Daftar hasil pesanan harus disediakan" msgid "Location" msgstr "Lokasi" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "Lokasi hasil pesanan yang selesai" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "Lokasi hasil pesanan yang selesai" msgid "Status" msgstr "Status" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "Terima Alokasi Tidak Lengkap" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "Terima Tidak Teralokasikan" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Terima bahwa stok item tidak teralokasikan sepenuhnya ke pesanan ini" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "Stok yang diperlukan belum teralokasikan sepenuhnya" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "Terima Tidak Selesai" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "Terima bahwa jumlah hasil produksi yang diperlukan belum selesai" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "Jumlah produksi yang diperlukan masih belum cukup" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "Order memiliki hasil produksi yang belum dilengkapi" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "Item tagihan material" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "Hasil produksi" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "Hasil pesanan harus mengarah ke pesanan yang sama" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part harus mengarah ke bagian yang sesuai dengan order produksi" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "Item harus tersedia dalam stok" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Jumlah tersedia ({q}) terlampaui" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "Hasil produksi harus ditentukan untuk mengalokasikan bagian yang terlacak" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Hasil produksi tidak dapat ditentukan untuk alokasi barang yang tidak terlacak" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "Stok item ini telah dialokasikan ke hasil produksi ini" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "Item yang dialokasikan harus disediakan" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Lokasi stok, dari mana bahan/bagian akan diambilkan (kosongkan untuk mengambil dari lokasi mana pun)" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "Lokasi tidak termasuk" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "Jangan ambil stok item dari lokasi yang dipilih" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "Stok bergantian" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Item stok di beberapa lokasi dapat digunakan secara bergantian" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "Stok pengganti" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "Izinkan alokasi bagian pengganti" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index effcece126..166c2fa466 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -25,20 +25,20 @@ msgstr "Endpoint API non trovato" msgid "Error details can be found in the admin panel" msgstr "I dettagli dell'errore possono essere trovati nel pannello di amministrazione" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Inserisci la data" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Seriale duplicato: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Numero seriale vuoto" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Range gruppo: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Gruppo non valido: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Sequenza gruppo non valida: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Gruppo {group} invalido o inesistente" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Nessun numero di serie trovato" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "File mancante" msgid "Missing external link" msgstr "Link esterno mancante" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Seleziona file da allegare" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Seleziona file da allegare" msgid "Link" msgstr "Collegamento" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Link a URL esterno" @@ -234,10 +223,10 @@ msgstr "Commento" msgid "File comment" msgstr "Commento del file" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Errore nella rinominazione del file" msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Nome" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Errore del server" msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Deve essere un numero valido" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Ceco" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Tedesco" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Greco" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Inglese" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Spagnolo (Messicano)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Farsi / Persiano" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Francese" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Ungherese" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Olandese" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Polacco" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portoghese" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portoghese (Brasile)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Svedese" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Thailandese" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Cinese" @@ -688,33 +677,24 @@ msgstr "Ricevuto contro l'ordine di acquisto" msgid "Production" msgstr "Produzione" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Non è un codice valuta valido" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Carattere non valido nel nome del file" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN deve corrispondere al modello regex {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Il campo deve corrispondere con il modello {pattern}" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Il sovra-valore non può essere negativo" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "L'eccesso non deve superare il 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Numero di riferimento ordine di vendita" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Posizione Di Origine" @@ -888,16 +868,16 @@ msgstr "Stato Build" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Codice Lotto" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Data di creazione" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Collegamento esterno" @@ -1008,9 +988,9 @@ msgstr "Produzione" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Articoli in magazzino" msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Installa in" msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Inserisci la quantità per l'output di compilazione" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Codice Seriale" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" -msgstr "I seguenti numeri di serie sono già esistenti" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" +msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "Posizione" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "Posizione per gli output di build completati" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "Posizione per gli output di build completati" msgid "Status" msgstr "Stato" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "Distinta base (Bom)" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "L'articolo deve essere disponibile" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantità disponibile ({q}) superata" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "Deve essere indicata l'allocazione dell'articolo" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Supporto Codice A Barre" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "Abilita supporto scanner codici a barre" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "Schema di espressione regolare per l'articolo corrispondente IPN" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "Consenti duplicati IPN" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "Permetti a più articoli di condividere lo stesso IPN" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "Permetti modifiche al part number interno (IPN)" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "Copia I Dati Della distinta base dell'articolo" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "Copia I Dati Parametro dell'articolo" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "Copia i dati dei parametri di default quando si duplica un articolo" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "Copia i dati di prova di default quando si duplica un articolo" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "Copia Template Parametri Categoria" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "Assemblaggio" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "Componente" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "Acquistabile" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "Vendibile" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "Tracciabile" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "Gli articoli sono tracciabili per impostazione predefinita" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "Virtuale" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "Gli articoli sono virtuali per impostazione predefinita" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "Mostra l'importazione nelle viste" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "Mostra la procedura guidata di importazione in alcune viste articoli" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "Mostra il prezzo nei moduli" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "Mostra il prezzo dell'articolo in alcuni moduli" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "Mostra il prezzo nella BOM" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "Includi le informazioni sui prezzi nelle tabelle BOM" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "Mostra articoli correlati" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "Visualizza parti correlate per ogni articolo" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "Crea giacenza iniziale" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "Crea giacenza iniziale sulla creazione articolo" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "Prezzi interni" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "Abilita prezzi interni per gli articoli" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "Prezzo interno come BOM-Price" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Utilizzare il prezzo interno (se impostato) nel calcolo del prezzo BOM" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "Formato di visualizzazione del nome articolo" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "Formato per visualizzare il nome dell'articolo" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "Abilita Report di Stampa" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "Abilita generazione di report di stampa" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "Modalità Debug" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "Genera report in modalità debug (output HTML)" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "Dimensioni pagina" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "Dimensione predefinita della pagina per i report PDF" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "Abilita generazione di stampe di prova" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 +#: common/models.py:1143 +msgid "Globally Unique Serials" +msgstr "" + +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" +msgstr "" + +#: common/models.py:1150 msgid "Batch Code Template" msgstr "" -#: common/models.py:1137 +#: common/models.py:1151 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1142 +#: common/models.py:1156 msgid "Stock Expiry" msgstr "Scadenza giacenza" -#: common/models.py:1143 +#: common/models.py:1157 msgid "Enable stock expiry functionality" msgstr "Abilita funzionalità di scadenza della giacenza" -#: common/models.py:1149 +#: common/models.py:1163 msgid "Sell Expired Stock" msgstr "Vendi giacenza scaduta" -#: common/models.py:1150 +#: common/models.py:1164 msgid "Allow sale of expired stock" msgstr "Consenti la vendita di stock scaduti" -#: common/models.py:1156 +#: common/models.py:1170 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1157 +#: common/models.py:1171 msgid "Number of days stock items are considered stale before expiring" msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza" -#: common/models.py:1159 +#: common/models.py:1173 msgid "days" msgstr "giorni" -#: common/models.py:1164 +#: common/models.py:1178 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1179 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1185 msgid "Stock Ownership Control" msgstr "Controllo della proprietà della giacenza" -#: common/models.py:1172 +#: common/models.py:1186 msgid "Enable ownership control over stock locations and items" msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza" -#: common/models.py:1178 +#: common/models.py:1192 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1179 +#: common/models.py:1193 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1184 +#: common/models.py:1198 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1185 +#: common/models.py:1199 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1191 +#: common/models.py:1205 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1192 +#: common/models.py:1206 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1198 +#: common/models.py:1212 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1199 +#: common/models.py:1213 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1205 +#: common/models.py:1219 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1206 +#: common/models.py:1220 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1213 +#: common/models.py:1227 msgid "Enable password forgot" msgstr "Abilita password dimenticata" -#: common/models.py:1214 +#: common/models.py:1228 msgid "Enable password forgot function on the login pages" msgstr "Abilita la funzione password dimenticata nelle pagine di accesso" -#: common/models.py:1220 +#: common/models.py:1234 msgid "Enable registration" msgstr "Abilita registrazione" -#: common/models.py:1221 +#: common/models.py:1235 msgid "Enable self-registration for users on the login pages" msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso" -#: common/models.py:1227 +#: common/models.py:1241 msgid "Enable SSO" msgstr "SSO abilitato" -#: common/models.py:1228 +#: common/models.py:1242 msgid "Enable SSO on the login pages" msgstr "Abilita SSO nelle pagine di accesso" -#: common/models.py:1234 +#: common/models.py:1248 msgid "Email required" msgstr "Email richiesta" -#: common/models.py:1235 +#: common/models.py:1249 msgid "Require user to supply mail on signup" msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione" -#: common/models.py:1241 +#: common/models.py:1255 msgid "Auto-fill SSO users" msgstr "Riempimento automatico degli utenti SSO" -#: common/models.py:1242 +#: common/models.py:1256 msgid "Automatically fill out user-details from SSO account-data" msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO" -#: common/models.py:1248 +#: common/models.py:1262 msgid "Mail twice" msgstr "" -#: common/models.py:1249 +#: common/models.py:1263 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1255 +#: common/models.py:1269 msgid "Password twice" msgstr "" -#: common/models.py:1256 +#: common/models.py:1270 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1262 +#: common/models.py:1276 msgid "Group on signup" msgstr "" -#: common/models.py:1263 +#: common/models.py:1277 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1269 +#: common/models.py:1283 msgid "Enforce MFA" msgstr "" -#: common/models.py:1270 +#: common/models.py:1284 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1276 +#: common/models.py:1290 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1277 +#: common/models.py:1291 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1284 +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "Prezzo" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "Attivo" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "Token" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "Punto di contatto" msgid "Link to external company information" msgstr "Collegamento alle informazioni aziendali esterne" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "Immagine" @@ -2867,7 +2867,7 @@ msgstr "Valuta" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "Nome parametro" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "Valore" msgid "Parameter value" msgstr "Valore del parametro" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "Descrizione articolo fornitore" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "Nota" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "costo base" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "Confezionamento" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "multiplo" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "Scarica immagine dall'URL" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "Telefono" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "Carica immagine" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "Download Immagine" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "La destinazione deve essere specificata" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "Specifica la posizione per lo stock iniziale" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "Posizione Predefinita" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" @@ -4475,56 +4475,48 @@ msgstr "Scelta non valida per l'articolo principale" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" -msgstr "I successivi numeri di serie disponibili sono" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" +msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "Il prossimo numero di serie disponibile è" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "Il numero di serie più recente è" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "Nome articolo" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "È Template" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "Quest'articolo è un articolo di template?" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "Questa parte è una variante di un altro articolo?" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "Variante Di" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "Descrizione articolo" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "Parole Chiave" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" msgid "Category" msgstr "Categoria" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "IPN - Numero di riferimento interno" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "Revisione" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "Dove viene normalmente immagazzinato questo articolo?" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "Fornitore predefinito" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "Articolo fornitore predefinito" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "Scadenza Predefinita" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "Scorta Minima" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "Unità di conservazione delle scorte per quest'articolo" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "Quest'articolo può essere acquistato da fornitori esterni?" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "Questo pezzo può essere venduto ai clienti?" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "Quest'articolo è attivo?" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "È una parte virtuale, come un prodotto software o una licenza?" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "Codice Articolo" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "Inattivo" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "Seleziona Owner" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "Articolo base" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicazione magazzino" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "Installato In" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "Quantità disponibile" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "Data di Scadenza" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "Elimina al esaurimento" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "Numeri di serie già esistenti" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "Inserisci un numero valido" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "Nessun risultato trovato" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "Ricerca" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "Cancella input" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 0814a3cb09..2b7aba5b21 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -25,20 +25,20 @@ msgstr "APIエンドポイントが見つかりません" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "日付を入力する" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "重複したシリアル番号: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "数量コードが無効です" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "シリアル番号は空です" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "無効なグループ: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "{group} は無効なグループか、存在しません。" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "シリアル番号が見つかりません" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "ファイルがありません" msgid "Missing external link" msgstr "外部リンクが見つかりません。" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "添付ファイルを選択" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "添付ファイルを選択" msgid "Link" msgstr "リンク" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "外部 サイト へのリンク" @@ -234,10 +223,10 @@ msgstr "コメント:" msgid "File comment" msgstr "ファイルコメント" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "ファイル名の変更に失敗しました" msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "お名前" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "ドイツ語" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "ギリシャ語" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "英語" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "スペイン語" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "スペイン語(メキシコ)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "フランス語" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "ヘブライ語" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "ハンガリー語" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "イタリア語" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "日本語" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "韓国語" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "オランダ語" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "ノルウェー語" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "ロシア語" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "スウェーデン語" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "タイ語" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "ベトナム語" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "中国語" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "生産" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "作成日時" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "パーツを割り当てるためにビルドする" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "在庫商品" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "ステータス" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "テンプレート" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "アセンブリ" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "コンポーネント" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "購入可能" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "追跡可能" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "デバッグモード" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "メッセージ ID:" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "カテゴリ" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 94a287d96d..72bb8d3371 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -25,20 +25,20 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "첨부할 파일을 선택하세요" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "첨부할 파일을 선택하세요" msgid "Link" msgstr "링크" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "외부 URL로 링크" @@ -234,10 +223,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "파일 이름 바꾸기 오류" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "이름" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "유효한 숫자여야 합니다" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "체코어" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "독일어" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "그리스어" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "영어" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "스페인어" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "스페인어 (멕시코)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "파르시어/페르시아어" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "프랑스어" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "히브리어" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "헝가리어" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "이탈리아어" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "일본어" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "한국어" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "네덜란드어" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "노르웨이어" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "폴란드어" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "러시아어" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "스웨덴어" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "태국어" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "터키어" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "베트남어" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "중국어" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "외부 링크" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "수량 값은 0보다 커야 합니다" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "일련번호" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "위치" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "상태" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "바코드 지원" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "구입 가능" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "판매 가능" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "디버그 모드" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "페이지 크기" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "PDF 보고서 기본 페이지 크기" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" -msgstr "SSO 활성화" +msgid "Enable password forgot" +msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" -msgstr "로그인 페이지에서 SSO 활성화" +msgid "Enable password forgot function on the login pages" +msgstr "" #: common/models.py:1234 -msgid "Email required" -msgstr "이메일 필요" +msgid "Enable registration" +msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" -msgstr "" +msgid "Enable SSO" +msgstr "SSO 활성화" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" -msgstr "" +msgid "Enable SSO on the login pages" +msgstr "로그인 페이지에서 SSO 활성화" #: common/models.py:1248 -msgid "Mail twice" -msgstr "두 번 보내기" +msgid "Email required" +msgstr "이메일 필요" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" -msgstr "" +msgid "Mail twice" +msgstr "두 번 보내기" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "이미지" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "URL에서 이미지 다운로드" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "전화번호" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "이미지 업로드" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "이미지 다운로드" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "이미 사용 중인 바코드입니다" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "데이터" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "일련번호 검색" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "일련번호가 이미 존재합니다" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index 103cfa0c5e..3d3627ebed 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -25,20 +25,20 @@ msgstr "API eindpunt niet gevonden" msgid "Error details can be found in the admin panel" msgstr "Error details kunnen worden gevonden in het admin scherm" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Voer datum in" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "Externe server heeft lege reactie teruggegeven" msgid "Supplied URL is not a valid image file" msgstr "Opgegeven URL is geen geldig afbeeldingsbestand" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Duplicaat serienummer: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveelheid ingevoerd" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Leeg serienummer" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ongeldig groepsbereik: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Ongeldige groep: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ongeldig groepsbereik: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Ongeldige/geen groep {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Geen serienummers gevonden" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Hoeveelheid van unieke serienummers ({s}) moet overeenkomen met de hoeveelheid ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "Ontbrekend bestand" msgid "Missing external link" msgstr "Externe link ontbreekt" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Bestand als bijlage selecteren" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Bestand als bijlage selecteren" msgid "Link" msgstr "Link" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Link naar externe URL" @@ -234,10 +223,10 @@ msgstr "Opmerking" msgid "File comment" msgstr "Bestand opmerking" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Fout bij hernoemen bestand" msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Naam" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Serverfout" msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" @@ -425,103 +414,103 @@ msgstr "URL van extern afbeeldingsbestand" msgid "Downloading images from remote URL is not enabled" msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Tsjechisch" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Duits" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Grieks" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Engels" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Spaans" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Spaans (Mexicaans)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Farsi / Perzisch" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Frans" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Hongaars" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Italiaans" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Japans" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Koreaans" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Noors" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Pools" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portugees" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portugees (Braziliaans)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Thais" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Turks" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Chinees" @@ -688,33 +677,24 @@ msgstr "Ontvangen tegen inkooporder" msgid "Production" msgstr "Productie" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Geen geldige valutacode" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Ongeldig teken in onderdeelnaam" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN moet overeenkomen met regex-patroon {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Referentie moet overeenkomen met patroon {pattern}" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Overschotwaarde mag niet negatief zijn" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Overschot mag niet groter zijn dan 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "Ongeldige waarde voor overschot" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Productieorderreferentie" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "Productieorder waar deze productie aan is toegewezen" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Verkooporder Referentie" msgid "SalesOrder to which this build is allocated" msgstr "Verkooporder waar deze productie aan is toegewezen" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Bronlocatie" @@ -888,16 +868,16 @@ msgstr "Productiestatus" msgid "Build status code" msgstr "Productiestatuscode" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Batchcode" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Batchcode voor deze productieuitvoer" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Aanmaakdatum" @@ -930,7 +910,7 @@ msgstr "Gebruiker die de productieorder heeft gegeven" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Gebruiker verantwoordelijk voor deze productieorder" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Externe Link" @@ -1008,9 +988,9 @@ msgstr "Product" msgid "Build to allocate parts" msgstr "Product om onderdelen toe te wijzen" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Voorraadartikel" msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Installeren in" msgid "Destination stock item" msgstr "Bestemming voorraadartikel" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "Productieuitvoer" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "Productieuitvoer komt niet overeen met de bovenliggende productie" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "Uitvoeronderdeel komt niet overeen met productieorderonderdeel" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "Deze productieuitvoer is al voltooid" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "Deze productieuitvoer is niet volledig toegewezen" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Voer hoeveelheid in voor productie uitvoer" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Geheel getal vereist omdat de stuklijst traceerbare onderdelen bevat" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Serienummers" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Voer serienummers in voor productieuitvoeren" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "Serienummers automatisch toewijzen" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" -msgstr "De volgende serienummers bestaan al" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" +msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "Een lijst van productieuitvoeren moet worden verstrekt" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "Een lijst van productieuitvoeren moet worden verstrekt" msgid "Location" msgstr "Locatie" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "Locatie van voltooide productieuitvoeren" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "Locatie van voltooide productieuitvoeren" msgid "Status" msgstr "Status" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "Incomplete Toewijzing Accepteren" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "Voltooi de uitvoer als de voorraad niet volledig is toegewezen" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "Toegewezen Voorraad Verwijderen" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "Verminder alle voorraad die al is toegewezen aan deze productie" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "Verwijder Incomplete Uitvoeren" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "Verwijder alle productieuitvoeren die niet zijn voltooid" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "Accepteer Niet-toegewezen" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "Accepteer dat voorraadartikelen niet volledig zijn toegewezen aan deze productieorder" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "Vereiste voorraad is niet volledig toegewezen" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "Accepteer Onvolledig" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "Accepteer dat het vereist aantal productieuitvoeren niet is voltooid" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "Vereiste productiehoeveelheid is voltooid" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "Productieorder heeft onvolledige uitvoeren" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "Stuklijstartikel" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "Productieuitvoer" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "Productieuitvoer moet naar dezelfde productie wijzen" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part moet naar hetzelfde onderdeel wijzen als de productieorder" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "Artikel moet op voorraad zijn" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Beschikbare hoeveelheid ({q}) overschreden" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "Productieuitvoer moet worden opgegeven voor de toewijzing van gevolgde onderdelen" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Productieuitvoer kan niet worden gespecificeerd voor de toewijzing van niet gevolgde onderdelen" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "Dit voorraadartikel is al toegewezen aan deze productieoutput" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "Allocaties voor artikelen moeten worden opgegeven" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Voorraadlocatie waar onderdelen afkomstig zijn (laat leeg om van elke locatie te nemen)" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "Locatie uitsluiten" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "Voorraadartikelen van deze geselecteerde locatie uitsluiten" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "Uitwisselbare voorraad" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Voorraadartikelen op meerdere locaties kunnen uitwisselbaar worden gebruikt" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "Vervangende Voorraad" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "Toewijzing van vervangende onderdelen toestaan" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Streepjescodeondersteuning" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "Streepjescodescanner ondersteuning inschakelen" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "Barcode Webcam Ondersteuning" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode via webcam scannen in browser toestaan" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulier expressiepatroon voor het overeenkomende Onderdeel IPN" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "Duplicaat IPN toestaan" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "Bewerken IPN toestaan" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "Kopieer Onderdeel Stuklijstgegevens" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopieer standaard stuklijstgegevens bij het dupliceren van een onderdeel" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "Kopieer Onderdeel Parametergegevens" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "Parametergegevens standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "Kopieer Onderdeel Testdata" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "Testdata standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "Kopiëer Categorieparameter Sjablonen" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "Sjabloon" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "Onderdelen zijn standaard sjablonen" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "Samenstelling" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "Component" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "Koopbaar" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "Onderdelen kunnen standaard gekocht worden" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "Verkoopbaar" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "Onderdelen kunnen standaard verkocht worden" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "Volgbaar" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "Onderdelen kunnen standaard gevolgd worden" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "Virtueel" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "Onderdelen zijn standaard virtueel" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "Toon Import in Weergaven" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "Toon de importwizard in sommige onderdelenweergaven" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "Toon Prijs in Formulieren" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "Toon onderdeelprijs in sommige formulieren" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "Prijs in Stuklijst Weergeven" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "Prijsinformatie in Stuklijsttabellen opnemen" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "Toon Prijsgeschiedenis" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "Toon historische prijzen voor Onderdeel" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "Verwante onderdelen tonen" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "Verwante onderdelen voor een onderdeel tonen" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "Eerste voorraad aanmaken" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "Aanmaken eerste voorraad bij het maken van onderdeel" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "Interne Prijzen" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "Inschakelen van interne prijzen voor onderdelen" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "Interne Prijs als Stuklijst Prijs" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Gebruik de interne prijs (indien ingesteld) in stuklijst prijsberekeningen" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "Onderdelennaam Weergaveopmaak" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "Opmaak om de onderdeelnaam weer te geven" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "Printen van labels Inschakelen" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "Printen van labels via de webinterface inschakelen" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "Label Afbeelding DPI" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI resolutie bij het genereren van afbeelginsbestanden voor label printer plugins" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "Activeer Rapportages" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "Activeer het genereren van rapporten" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "Foutopsporingsmodus" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "Rapporten genereren in debug modus (HTML uitvoer)" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "Paginagrootte" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "Standaard paginagrootte voor PDF rapporten" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "Activeer Testrapporten" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "Activeer het genereren van testrapporten" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "Testrapporten Toevoegen" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Bij het afdrukken van een Testrapport, voeg een kopie van het Testrapport toe aan het bijbehorende Voorraadartikel" -#: common/models.py:1136 +#: common/models.py:1143 +msgid "Globally Unique Serials" +msgstr "" + +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" +msgstr "" + +#: common/models.py:1150 msgid "Batch Code Template" msgstr "Batchcode Sjabloon" -#: common/models.py:1137 +#: common/models.py:1151 msgid "Template for generating default batch codes for stock items" msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen" -#: common/models.py:1142 +#: common/models.py:1156 msgid "Stock Expiry" msgstr "Verlopen Voorraad" -#: common/models.py:1143 +#: common/models.py:1157 msgid "Enable stock expiry functionality" msgstr "Verlopen voorraad functionaliteit inschakelen" -#: common/models.py:1149 +#: common/models.py:1163 msgid "Sell Expired Stock" msgstr "Verkoop Verlopen Voorraad" -#: common/models.py:1150 +#: common/models.py:1164 msgid "Allow sale of expired stock" msgstr "Verkoop verlopen voorraad toestaan" -#: common/models.py:1156 +#: common/models.py:1170 msgid "Stock Stale Time" msgstr "Voorraad Vervaltijd" -#: common/models.py:1157 +#: common/models.py:1171 msgid "Number of days stock items are considered stale before expiring" msgstr "Aantal dagen voordat voorraadartikelen als verouderd worden beschouwd voor ze verlopen" -#: common/models.py:1159 +#: common/models.py:1173 msgid "days" msgstr "dagen" -#: common/models.py:1164 +#: common/models.py:1178 msgid "Build Expired Stock" msgstr "Produceer Verlopen Voorraad" -#: common/models.py:1165 +#: common/models.py:1179 msgid "Allow building with expired stock" msgstr "Sta productie met verlopen voorraad toe" -#: common/models.py:1171 +#: common/models.py:1185 msgid "Stock Ownership Control" msgstr "Voorraad Eigenaar Toezicht" -#: common/models.py:1172 +#: common/models.py:1186 msgid "Enable ownership control over stock locations and items" msgstr "Eigenaarstoezicht over voorraadlocaties en items inschakelen" -#: common/models.py:1178 +#: common/models.py:1192 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1179 +#: common/models.py:1193 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1184 +#: common/models.py:1198 msgid "Build Order Reference Pattern" msgstr "Productieorderreferentiepatroon" -#: common/models.py:1185 +#: common/models.py:1199 msgid "Required pattern for generating Build Order reference field" msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld" -#: common/models.py:1191 +#: common/models.py:1205 msgid "Sales Order Reference Pattern" msgstr "Verkooporderreferentiepatroon" -#: common/models.py:1192 +#: common/models.py:1206 msgid "Required pattern for generating Sales Order reference field" msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld" -#: common/models.py:1198 +#: common/models.py:1212 msgid "Sales Order Default Shipment" msgstr "Standaard Verzending Verkooporder" -#: common/models.py:1199 +#: common/models.py:1213 msgid "Enable creation of default shipment with sales orders" msgstr "Aanmaken standaard verzending bij verkooporders inschakelen" -#: common/models.py:1205 +#: common/models.py:1219 msgid "Purchase Order Reference Pattern" msgstr "Inkooporderreferentiepatroon" -#: common/models.py:1206 +#: common/models.py:1220 msgid "Required pattern for generating Purchase Order reference field" msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld" -#: common/models.py:1213 +#: common/models.py:1227 msgid "Enable password forgot" msgstr "Wachtwoord vergeten functie inschakelen" -#: common/models.py:1214 +#: common/models.py:1228 msgid "Enable password forgot function on the login pages" msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's" -#: common/models.py:1220 +#: common/models.py:1234 msgid "Enable registration" msgstr "Registratie inschakelen" -#: common/models.py:1221 +#: common/models.py:1235 msgid "Enable self-registration for users on the login pages" msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen" -#: common/models.py:1227 +#: common/models.py:1241 msgid "Enable SSO" msgstr "SSO inschakelen" -#: common/models.py:1228 +#: common/models.py:1242 msgid "Enable SSO on the login pages" msgstr "SSO inschakelen op de inlogpagina's" -#: common/models.py:1234 +#: common/models.py:1248 msgid "Email required" msgstr "E-mailadres verplicht" -#: common/models.py:1235 +#: common/models.py:1249 msgid "Require user to supply mail on signup" msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding" -#: common/models.py:1241 +#: common/models.py:1255 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1242 +#: common/models.py:1256 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1248 +#: common/models.py:1262 msgid "Mail twice" msgstr "E-mail twee keer" -#: common/models.py:1249 +#: common/models.py:1263 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1255 +#: common/models.py:1269 msgid "Password twice" msgstr "" -#: common/models.py:1256 +#: common/models.py:1270 msgid "On signup ask users twice for their password" msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden" -#: common/models.py:1262 +#: common/models.py:1276 msgid "Group on signup" msgstr "Groep bij aanmelding" -#: common/models.py:1263 +#: common/models.py:1277 msgid "Group to which new users are assigned on registration" msgstr "Groep waaraan nieuwe gebruikers worden toegewezen bij registratie" -#: common/models.py:1269 +#: common/models.py:1283 msgid "Enforce MFA" msgstr "MFA afdwingen" -#: common/models.py:1270 +#: common/models.py:1284 msgid "Users must use multifactor security." msgstr "Gebruikers moeten multifactor-beveiliging gebruiken." -#: common/models.py:1276 +#: common/models.py:1290 msgid "Check plugins on startup" msgstr "Controleer plugins bij het opstarten" -#: common/models.py:1277 +#: common/models.py:1291 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1284 +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "Activeer URL-integratie" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "Toon laatste onderdelen" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "Toon laatste onderdelen op de startpagina" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "Recente Voorraadtelling" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "Toon recente voorraadwijzigingen" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "Toon recent aangepaste voorraadartikelen op de startpagina" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "Recente Voorraadtelling" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "Toon lage voorraad" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "Toon lage voorraad van artikelen op de startpagina" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "Toon lege voorraad" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "Toon lege voorraad van artikelen op de startpagina" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "Toon benodigde voorraad" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "Toon verlopen voorraad" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "Toon verlopen voorraad van artikelen op de startpagina" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "Toon verouderde voorraad" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "Toon verouderde voorraad van artikelen op de startpagina" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "Toon openstaande producties" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "Toon openstaande producties op de startpagina" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "Toon achterstallige productie" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "Toon achterstallige producties op de startpagina" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "Toon uitstaande PO's" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "Toon uitstaande PO's op de startpagina" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "Toon achterstallige PO's" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "Toon achterstallige PO's op de startpagina" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "Toon uitstaande SO's" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "Toon uitstaande SO's op de startpagina" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "Toon achterstallige SO's" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "Toon achterstallige SO's op de startpagina" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "Zoek Onderdelen" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "Zoek in Voorraad" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "Inkooporders Zoeken" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "Toon inkooporders in het zoekvenster" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "Inactieve Inkooporders Weglaten" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inactieve inkooporders weglaten in het zoekvenster" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "Verkooporders zoeken" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "Toon verkooporders in het zoekvenster" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "Inactieve Verkooporders Weglaten" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "Prijs" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "Actief" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "Token" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "Token voor toegang" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "Geheim" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "Bericht ID" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "Host" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "Koptekst" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "Koptekst van dit bericht" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "Berichtinhoud" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "Inhoud van dit bericht" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "Artikelen zijn ontvangen tegen een inkooporder" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "Contactpunt" msgid "Link to external company information" msgstr "Link naar externe bedrijfsinformatie" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "Afbeelding" @@ -2867,7 +2867,7 @@ msgstr "Valuta" msgid "Default currency used for this company" msgstr "Standaardvaluta die gebruikt wordt voor dit bedrijf" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "Parameternaam" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "Waarde" msgid "Parameter value" msgstr "Parameterwaarde" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "Opmerking" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "basisprijs" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "meerdere" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "Afbeelding downloaden van URL" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "Telefoon" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "Afbeelding Uploaden" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "Afbeelding Downloaden" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "Toegewezen Voorraadartikelen" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "Ontvangen" msgid "Number of items received" msgstr "Aantal ontvangen artikelen" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "Gecontroleerd door" msgid "User who checked this shipment" msgstr "Gebruiker die deze zending gecontroleerd heeft" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "Zending" @@ -3909,7 +3909,7 @@ msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel" msgid "Allocation quantity cannot exceed stock quantity" msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel" @@ -3949,11 +3949,11 @@ msgstr "Prijs valuta" msgid "Order cannot be cancelled" msgstr "Order kan niet worden geannuleerd" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "De leverancier moet overeenkomen met de inkooporder" msgid "Purchase order must match supplier" msgstr "Inkooporder moet overeenkomen met de leverancier" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "Artikel" @@ -3989,7 +3989,7 @@ msgstr "Artikel" msgid "Line item does not match purchase order" msgstr "Artikelregel komt niet overeen met inkooporder" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen" @@ -4013,51 +4013,51 @@ msgstr "Streepjescode is al in gebruik" msgid "An integer quantity must be provided for trackable parts" msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "Artikelen moeten worden opgegeven" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "Bestemmingslocatie moet worden opgegeven" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "Geleverde streepjescodewaarden moeten uniek zijn" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "Valuta verkoopprijs" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "Geen verzenddetails opgegeven" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "Artikelregel is niet gekoppeld aan deze bestelling" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "Hoeveelheid moet positief zijn" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "Voer serienummers in om toe te wijzen" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "Verzending is al verzonden" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "Zending is niet gekoppeld aan deze bestelling" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "Geen overeenkomst gevonden voor de volgende serienummers" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "De volgende serienummers zijn al toegewezen" @@ -4070,11 +4070,11 @@ msgstr "Achterstallige inkooporder" msgid "Purchase order {po} is now overdue" msgstr "Inkooporder {po} is nu achterstallig" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "Achterstallige Verkooporder" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Verkooporder {so} is nu achterstallig" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "Standaard locatie" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "De template van de parameter moet uniek zijn" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "Parameternaam" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "Parameter Eenheden" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Parameter Template" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "Parameterwaarde" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "Standaard Parameter Waarde" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "Geen overeenkomende afbeeldingen gevonden" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Voorraadlocatie" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "Inkooporder Bron" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "Inkooporder voor dit voorraadartikel" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "Bestemming Verkooporder" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "Voorraadartikel is toegewezen aan een verkooporder" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "Artikel is toegewezen aan een verkooporder" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "Artikel is toegewezen aan een productieorder" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index e9641d776d..7dfc4c8b5b 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -25,20 +25,20 @@ msgstr "API endepunkt ikke funnet" msgid "Error details can be found in the admin panel" msgstr "Feildetaljer kan ikke finnes i admin-panelet" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Oppgi dato" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "Ekstern server returnerte tomt svar" msgid "Supplied URL is not a valid image file" msgstr "Angitt URL er ikke en gyldig bildefil" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Dupliser serie: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Tom serienummerstreng" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ugyldig gruppeserie: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Ugyldig gruppe: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ugyldig gruppesekvense: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Ugyldig/ingen gruppe {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Ingen serienummer funnet" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Antall unike serienumre ({s}) må samsvare med antall ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "Fil mangler" msgid "Missing external link" msgstr "Mangler eksternlenke" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Velg fil å legge ved" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Velg fil å legge ved" msgid "Link" msgstr "Lenke" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Lenke til ekstern URL" @@ -234,10 +223,10 @@ msgstr "Kommenter" msgid "File comment" msgstr "Kommentar til fil" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Feil ved endring av navn" msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Navn" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Nummer må være gyldig" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Tsjekkisk" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Tysk" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Gresk" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Engelsk" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Spansk" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Spansk (Meksikansk)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Farsi / Persisk" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Fransk" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Ungarsk" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portugisisk" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasilian)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Kinesisk" @@ -688,33 +677,24 @@ msgstr "Mottatt mot innkjøpsordre" msgid "Production" msgstr "Produksjon" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Ikke en gyldig valutanr" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Ugylding tegn i varenavn" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN må matche regex-mønster {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Referansen må samsvare med mønster {pattern}" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Overde-verdien må ikke være negativ" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Overde må ikke overstige 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Bygg ordrereferanse" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "Build order som denne build er tildelt til" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Salg order referanse" msgid "SalesOrder to which this build is allocated" msgstr "Salgorder som denne build er tildelt til" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Kilde plassering" @@ -888,16 +868,16 @@ msgstr "Byggstatus" msgid "Build status code" msgstr "Byggstatuskode" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Batch kode" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Batch kode for denne build output" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Opprettelsesdato" @@ -930,7 +910,7 @@ msgstr "Brukeren som utstede denne prosjekt order" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Bruker ansvarlig for denne prosjekt order" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Ekstern link" @@ -1008,9 +988,9 @@ msgstr "Prosjekt" msgid "Build to allocate parts" msgstr "Bygge for å tildele deler" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Lagervare" msgid "Source stock item" msgstr "Kilde lagervare" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Installerings informasjon" msgid "Destination stock item" msgstr "Målets lagervare" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Angi antall for build utgang" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Serienummer" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Angi serienummer for bygge-utganger" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "Beliggenhet" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "Påkrevd varer er ikke fullt tildelt" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "BOM varer" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "Varen må være på lager" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Tilgjengelig mengde ({q}) overskredet" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Strekkode støtte" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "Aktiver skrekkodeleser støtte" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "Tilat duplisert IPN" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "Tillat flere deler å dele samme IPN" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "Tillat redigering av IPN" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "Tillat å endre IPN-verdien mens du redigerer en del" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "Kopier testdata som standard ved duplisering av en del" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "Kopier kategori parametermaler ved oppretting av en del" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "Mal" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "Deler er maler som standard" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "Montering" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "Komponent" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "Deler kan bli brukt som underkomponenter som standard" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "Kjøpbar" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "Salgbar" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "Deler er salgbare som standard" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "Sporbar" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "Deler er sporbare som standard" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "Deler er virtuelle som standard" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "Vis import i visninger" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "Vis importveiviseren i noen deler visninger" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "Vis pris i skjemaer" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "Vis delpris i noen skjemaer" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 +msgid "Enable creation of default shipment with sales orders" +msgstr "" + +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" +msgstr "" + +#: common/models.py:1220 +msgid "Required pattern for generating Purchase Order reference field" +msgstr "" + +#: common/models.py:1227 msgid "Enable password forgot" msgstr "Aktiver passord glemt" -#: common/models.py:1214 +#: common/models.py:1228 msgid "Enable password forgot function on the login pages" msgstr "Ativer funskjon for glemt passord på innloggingssidene" -#: common/models.py:1220 +#: common/models.py:1234 msgid "Enable registration" msgstr "Aktiver registrering" -#: common/models.py:1221 +#: common/models.py:1235 msgid "Enable self-registration for users on the login pages" msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene" -#: common/models.py:1227 +#: common/models.py:1241 msgid "Enable SSO" msgstr "Aktiver SSO" -#: common/models.py:1228 +#: common/models.py:1242 msgid "Enable SSO on the login pages" msgstr "Aktiver SSO på innloggingssidene" -#: common/models.py:1234 +#: common/models.py:1248 msgid "Email required" msgstr "E-postadresse kreves" -#: common/models.py:1235 +#: common/models.py:1249 msgid "Require user to supply mail on signup" msgstr "Krevt at brukeren angi e-post ved registrering" -#: common/models.py:1241 +#: common/models.py:1255 msgid "Auto-fill SSO users" msgstr "Auto-utfyll SSO brukere" -#: common/models.py:1242 +#: common/models.py:1256 msgid "Automatically fill out user-details from SSO account-data" msgstr "Fyll automatisk ut brukeropplysninger fra SSO kontodata" -#: common/models.py:1248 +#: common/models.py:1262 msgid "Mail twice" msgstr "E-post to ganger" -#: common/models.py:1249 +#: common/models.py:1263 msgid "On signup ask users twice for their mail" msgstr "Ved registrering spør brukere to ganger for e-posten" -#: common/models.py:1255 +#: common/models.py:1269 msgid "Password twice" msgstr "Passord to ganger" -#: common/models.py:1256 +#: common/models.py:1270 msgid "On signup ask users twice for their password" msgstr "Ved registrerting, spør brukere to ganger for passord" -#: common/models.py:1262 +#: common/models.py:1276 msgid "Group on signup" msgstr "" -#: common/models.py:1263 +#: common/models.py:1277 msgid "Group to which new users are assigned on registration" msgstr "Gruppe for hvilke nye brukere som er tilknyttet registrering" -#: common/models.py:1269 +#: common/models.py:1283 msgid "Enforce MFA" msgstr "" -#: common/models.py:1270 +#: common/models.py:1284 msgid "Users must use multifactor security." msgstr "Brukere må bruke flerfaktorsikkerhet." -#: common/models.py:1276 +#: common/models.py:1290 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1277 +#: common/models.py:1291 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1284 +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "Aktiver URL integrering" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "Aktiver navigasjonsintegrering" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "Aktiver app integrasjon" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "Vis abbonerte deler" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "Vis abbonerte deler på hjemmesiden" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "Vis abbonerte kategorier" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "Vis abbonerte delkatekorier på hjemmesiden" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "Vis nyeste deler" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "Vis nyeste deler på hjemmesiden" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "Antall nylig deler" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "Vis uvaliderte BOMs" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "Vis BOMs som venter validering på hjemmesiden" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "Vis nylige lagerendringer" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "Vis nylig endret lagervarer på hjemmesiden" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "Siste lagertelling" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "Antall nylige lagervarer som skal vises på indeksside" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "Vis lav lager" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "Vis lav lagervarer på hjemmesiden" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "Vis tom lagervarer" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "Aktiv" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "Sjetong" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "Nøkkel for tilgang" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "Hemmelig" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "Delt hemmlighet for HMAC" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "Melding ID" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "Unik Id for denne meldingen" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "Vert" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "Tittel" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "Overskrift for denne meldingen" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "Brødtekst" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "Arbeidet med" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "Link til ekstern bedriftsinformasjon" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "Bilde" @@ -2867,7 +2867,7 @@ msgstr "Valuta" msgid "Default currency used for this company" msgstr "Standardvaluta brukt for dette firmaet" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "Last ned bilde fra URL" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "Last opp bilde" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "Tildelt lagervarer" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "Seriernummer eksisterer allerede" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index 4f7433f566..f3ba2ff849 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -25,20 +25,20 @@ msgstr "Nie znaleziono punktu końcowego API" msgid "Error details can be found in the admin panel" msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Wprowadź dane" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Powtórzony numer seryjny: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Pusty ciąg numeru seryjnego" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Nieprawidłowy zakres grupy: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Nieprawidłowa grupa: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Nieprawidłowa sekwencja grupy: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Nieprawidłowa/Brak grupy {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Nie znaleziono numerów seryjnych" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Liczba unikalnych numerów seryjnych ({s}) musi odpowiadać ilości ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "Brak pliku" msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Wybierz plik do załączenia" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Wybierz plik do załączenia" msgid "Link" msgstr "Łącze" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" @@ -234,10 +223,10 @@ msgstr "Komentarz" msgid "File comment" msgstr "Komentarz pliku" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Błąd zmiany nazwy pliku" msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Nazwa" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Błąd serwera" msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Czeski" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Niemiecki" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Grecki" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Angielski" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Hiszpański (Meksyk)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Perski" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Francuski" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Węgierski" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Włoski" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Japoński" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Koreański" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Polski" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portugalski" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portugalski (Brazylijski)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Tajski" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Turecki" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Chiński" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "Produkcja" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Nieprawidłowy kod waluty" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Błędny znak w nazwie elementu" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN musi być zgodny z wyrażeniem regularnym {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Wartość przedawnienia nie może być ujemna" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Przedawnienie nie może przekroczyć 100 %" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "Nieprawidłowa wartość przedawnienia" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Odwołanie do zamówienia sprzedaży" msgid "SalesOrder to which this build is allocated" msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Lokalizacja źródła" @@ -888,16 +868,16 @@ msgstr "Status budowania" msgid "Build status code" msgstr "Kod statusu budowania" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Kod partii" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Data utworzenia" @@ -930,7 +910,7 @@ msgstr "Użytkownik, który wydał to zamówienie" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Link Zewnętrzny" @@ -1008,9 +988,9 @@ msgstr "Budowa" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Element magazynowy" msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Zainstaluj do" msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Numer seryjny" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "Lokalizacja" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "Status" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "Akceptuj niekompletne" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "Element BOM" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "Towar musi znajdować się w magazynie" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "Magazyn, z którego mają być pozyskane elementy (pozostaw puste, aby pobrać z dowolnej lokalizacji)" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "Wyklucz lokalizację" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "Wyklucz produkty magazynowe z wybranej lokalizacji" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "Towary magazynowe w wielu lokalizacjach mogą być stosowane zamiennie" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "Zastępczy magazyn" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Obsługa kodu kreskowego" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "Włącz obsługę skanera kodów" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "Wyrażenie regularne IPN" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "Zezwól na powtarzający się IPN" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "Zezwól na edycję IPN" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "Skopiuj BOM komponentu" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "Szablon" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "Złożenie" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "Komponent" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "Możliwość zakupu" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "Możliwość sprzedaży" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "Możliwość śledzenia" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "Wirtualny" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "Części są domyślnie wirtualne" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "Pokaż cenę w BOM" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "Dołącz informacje cenowe w tabelach BOM" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "Pokaż historię cen" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "Utwórz początkowy stan magazynowy" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "Ceny wewnętrzne" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "Włącz drukowanie etykiet" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "Włącz drukowanie etykiet z interfejsu WWW" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "DPI etykiety" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "Włącz raporty" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "Tryb Debugowania" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "Domyślna wielkość strony dla raportów PDF" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "Włącz generowanie raportów testów" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" -msgstr "dni" +#: common/models.py:1163 +msgid "Sell Expired Stock" +msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" -msgstr "" +#: common/models.py:1173 +msgid "days" +msgstr "dni" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 +msgid "Enable creation of default shipment with sales orders" +msgstr "" + +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" +msgstr "" + +#: common/models.py:1220 +msgid "Required pattern for generating Purchase Order reference field" +msgstr "" + +#: common/models.py:1227 msgid "Enable password forgot" msgstr "Włącz opcję zapomnianego hasła" -#: common/models.py:1214 +#: common/models.py:1228 msgid "Enable password forgot function on the login pages" msgstr "Włącz funkcję zapomnianego hasła na stronach logowania" -#: common/models.py:1220 +#: common/models.py:1234 msgid "Enable registration" msgstr "Włącz rejestrację" -#: common/models.py:1221 +#: common/models.py:1235 msgid "Enable self-registration for users on the login pages" msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania" -#: common/models.py:1227 +#: common/models.py:1241 msgid "Enable SSO" msgstr "Włącz SSO" -#: common/models.py:1228 +#: common/models.py:1242 msgid "Enable SSO on the login pages" msgstr "Włącz SSO na stronach logowania" -#: common/models.py:1234 +#: common/models.py:1248 msgid "Email required" msgstr "Adres e-mail jest wymagany" -#: common/models.py:1235 +#: common/models.py:1249 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1241 +#: common/models.py:1255 msgid "Auto-fill SSO users" msgstr "Autouzupełnianie użytkowników SSO" -#: common/models.py:1242 +#: common/models.py:1256 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO" -#: common/models.py:1248 +#: common/models.py:1262 msgid "Mail twice" msgstr "E-mail dwa razy" -#: common/models.py:1249 +#: common/models.py:1263 msgid "On signup ask users twice for their mail" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail" -#: common/models.py:1255 +#: common/models.py:1269 msgid "Password twice" msgstr "Hasło dwukrotnie" -#: common/models.py:1256 +#: common/models.py:1270 msgid "On signup ask users twice for their password" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło" -#: common/models.py:1262 +#: common/models.py:1276 msgid "Group on signup" msgstr "Grupuj przy rejestracji" -#: common/models.py:1263 +#: common/models.py:1277 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1269 +#: common/models.py:1283 msgid "Enforce MFA" msgstr "Wymuś MFA" -#: common/models.py:1270 +#: common/models.py:1284 msgid "Users must use multifactor security." msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych." -#: common/models.py:1276 +#: common/models.py:1290 msgid "Check plugins on startup" msgstr "Sprawdź wtyczki przy starcie" -#: common/models.py:1277 +#: common/models.py:1291 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1284 +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "Włącz integrację URL" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "Włącz wtyczki, aby dodać ścieżki URL" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "Włącz integrację z aplikacją" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "Włącz wtyczki, aby dodać aplikacje" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "Pokaż obserwowane części" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "Pokaż obserwowane części na stronie głównej" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "Pokaż obserwowane kategorie" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "Pokaż obserwowane kategorie części na stronie głównej" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "Pokaż najnowsze części" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "Pokaż najnowsze części na stronie głównej" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "Pokaż niski stan magazynowy" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "Pokaż elementy o niskim stanie na stronie głównej" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "Pokaż wymagany stan zapasów" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "Szukaj części" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "Ukryj nieaktywne części" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "Stały pasek nawigacyjny" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "Format daty" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "Preferowany format wyświetlania dat" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planowanie komponentów" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "Cena" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "Punkt końcowy" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "Aktywny" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "Sekret" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "Współdzielony sekret dla HMAC" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "Id wiadomości" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "Unikalny identyfikator dla tej wiadomości" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "Host, od którego otrzymano tę wiadomość" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "Nagłówek" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "Nagłówek tej wiadomości" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "Zawartość" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "Punkt kontaktowy" msgid "Link to external company information" msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "Obraz" @@ -2867,7 +2867,7 @@ msgstr "Waluta" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "Wartość" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "Uwaga" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "Opakowanie" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "wielokrotność" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "Pobierz obraz z adresu URL" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "Telefon" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "Załaduj obrazek" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "Pobierz obraz" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "Odebrane" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "Sprawdzone przez" msgid "User who checked this shipment" msgstr "Użytkownik, który sprawdził tę wysyłkę" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "Przesyłka" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "Zamówienie nie może zostać anulowane" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "To pole jest wymagane" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "Domyślna lokalizacja" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategoria komponentu" @@ -4475,56 +4475,48 @@ msgstr "Nieprawidłowy wybór dla części nadrzędnej" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "Część '{p1}' jest używana w BOM dla '{p2}' (rekursywne)" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "Nazwa komponentu" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "Czy szablon" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "Czy ta część stanowi szablon części?" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "Czy ta część jest wariantem innej części?" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "Wariant" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "Opis komponentu" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "Słowa kluczowe" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "Kategoria" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "Wersja" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "Domyślne wygasanie" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "Czy ten komponent może być zbudowany z innych komponentów?" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "Czy ta część może być użyta do budowy innych części?" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "Czy ta część wymaga śledzenia każdego towaru z osobna?" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "Czy to wirtualna część, taka jak oprogramowanie lub licencja?" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "Tworzenie użytkownika" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "Testowy opis" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "Wprowadź opis do tego testu" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "Wymagane" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "Wymaga wartości" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "Wymaga załącznika" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "Dane" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "Wartość parametru" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "ID komponentu" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "Unikalny wartość ID komponentu" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "Nazwa komponentu" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "IPN komponentu" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "Wartość IPN części" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "Poziom" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "Opcjonalne" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "Notatki pozycji BOM" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "Dziedziczone" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "Zezwalaj na warianty" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "Część zastępcza" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "Część 1" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "Część 2" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "Nieaktywny" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "Minimalny poziom stanu magazynowego" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "Ostatni numer seryjny" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "Szukaj numeru seryjnego" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "Oblicz" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "Nie znaleziono pasujących obrazów" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "Ukryj szczegóły części" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "Włącz PO" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "Wynik" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "Właściciel" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "Wybierz właściciela" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "Nadrzędny towar" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "Wybierz pasującą część dostawcy dla tego towaru" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "Zainstalowane w" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "Data ważności" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "Usuń po wyczerpaniu" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "Ilość nie może przekraczać dostępnej ilości towaru ({n})" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "Nazwa testu" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "Numer seryjny już istnieje" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "Część musi być dostępna do sprzedaży" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8655,32 +8657,32 @@ msgstr "Pozostaw ten formularz otwarty" msgid "Enter a valid number" msgstr "Wprowadź poprawny numer" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Istnieją błędy formularza" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "Nie znaleziono wyników" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "Wyszukiwanie" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "Wyczyść wejście" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "Kolumna pliku" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "Nazwa pola" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "Wybór Kolumn" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index 5b55ece495..e07f98572c 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -25,20 +25,20 @@ msgstr "API endpoint não encontrado" msgid "Error details can be found in the admin panel" msgstr "Detalhes do erro podem ser encontrados no painel de administrador" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Insira uma Data" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Numero serial duplicado: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Quantidade invalida" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Numero serial em branco" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Numero de grupo invalido:{g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Grupo invalido:{g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Sequencia de grupo invalida:{g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Invalido/sem grupo {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Nenhum numero serial encontrado" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Numero de numeros seriais ({s}) precisa bater com quantidade ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "Arquivo nao encontrado" msgid "Missing external link" msgstr "Link externo nao encontrado" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Selecione arquivo para anexar" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Selecione arquivo para anexar" msgid "Link" msgstr "Link" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Link para URL externa" @@ -234,10 +223,10 @@ msgstr "Comentario" msgid "File comment" msgstr "Comentario sobre arquivo" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Erro renomeando o arquivo" msgid "Invalid choice" msgstr "Escolha invalida" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Nome" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Erro de servidor" msgid "An error has been logged by the server." msgstr "Log de erro salvo pelo servidor." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Preicsa ser um numero valido" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po index 05b56ec280..aecddd3818 100644 --- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-12 05:36+0000\n" +"POT-Creation-Date: 2022-10-16 13:10+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -426,103 +426,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:613 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:614 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:623 msgid "German" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:625 msgid "English" msgstr "" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:629 msgid "French" msgstr "" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "" @@ -5738,23 +5738,23 @@ msgstr "" msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:51 plugin/base/barcodes/api.py:109 +#: plugin/base/barcodes/api.py:52 plugin/base/barcodes/api.py:110 msgid "Must provide barcode_data parameter" msgstr "" -#: plugin/base/barcodes/api.py:81 +#: plugin/base/barcodes/api.py:82 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:85 +#: plugin/base/barcodes/api.py:86 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:124 +#: plugin/base/barcodes/api.py:125 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:210 +#: plugin/base/barcodes/api.py:222 msgid "No match found for provided value" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index 51a924e894..80ad1d1c6e 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -25,20 +25,20 @@ msgstr "Конечная точка API не обнаружена" msgid "Error details can be found in the admin panel" msgstr "Подробности об ошибке можно найти в панели администратора" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Введите дату" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Повторяющийся серийный номер: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "недопустимое количество" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Пустая строка серийного номера" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Некорректный идентификатор группы {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Недопустимая/несуществующая группа {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Серийных номеров не найдено" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "Файл не найден" msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Выберите файл для вложения" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Выберите файл для вложения" msgid "Link" msgstr "Ссылка" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Ссылка на внешний URL" @@ -234,10 +223,10 @@ msgstr "Комментарий" msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Ошибка переименования файла" msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Название" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Должно быть действительным номером" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Немецкий" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Греческий" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Английский" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Испанский" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Испанский (Мексика)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Французский" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Венгерский" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Итальянский" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Японский" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Корейский" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Голландский" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Польский" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Русский" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Шведский" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Тайский" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Китайский" @@ -688,33 +677,24 @@ msgstr "Получено по заказу на покупку" msgid "Production" msgstr "Продукция" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Неверный код валюты" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Неверный символ в названии части" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN должен совпадать с регулярным выражением {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Ссылка должна соответствовать шаблону {pattern}" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Значение перегрузки не должно быть отрицательным" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Перегрузка не может превысить 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Ссылка на заказ" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Отсылка на заказ" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Расположение источника" @@ -888,16 +868,16 @@ msgstr "Статус сборки" msgid "Build status code" msgstr "Код статуса сборки" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Код партии" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Код партии для этого вывода сборки" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Дата создания" @@ -930,7 +910,7 @@ msgstr "Пользователь, выпустивший этот заказ н #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Пользователь, ответственный за этот за #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Внешняя ссылка" @@ -1008,9 +988,9 @@ msgstr "Сборка" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Предметы на складе" msgid "Source stock item" msgstr "Исходный складской предмет" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Введите количество для вывода сборки" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Серийные номера" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Введите серийные номера для результатов сборки" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "Расположение" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "Статус" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "BOM Компонент" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "Компонент должен быть в наличии" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Превышено доступное количество ({q})" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "Разрешить повторяющиеся IPN" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "Разрешить редактирование IPN" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "Шаблон" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "По умолчанию детали являются шаблонами" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "Сборка" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "Компонент" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "Можно продавать" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "Отслеживание" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "Показывать цену в формах" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "Показывать цену в BOM" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "Показывать историю цены" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "Показывать связанные детали" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "Режим отладки" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" -msgstr "Необходимо указать EMail" +msgid "Enable registration" +msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" -msgstr "" +msgid "Email required" +msgstr "Необходимо указать EMail" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "Показывать детали, на которые включены уведомления" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "Показывать детали, на которые включены уведомления, на главной странице" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "Показывать категории, на которые включены уведомления" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "Показывать категории, на которые включены уведомления, на главной странице" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "Показывать последние детали" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "Показывать последние детали на главной странице" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "Показывать непроверенные BOMы" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "Показывать BOMы, ожидающие проверки, на главной странице" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "Показывать изменившиеся складские запасы" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "Показывать единицы хранения с недавно изменившимися складскими запасами на главной странице" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "Показывать низкие складские запасы" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "Показывать единицы хранения с низкими складскими запасами на главной странице" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "Показывать закончившиеся детали" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "Показывать закончившиеся на складе единицы хранения на главной странице" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "Показывать требуемые детали" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "Показывать требуемые для сборки единицы хранения на главной странице" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "Показывать просрочку" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "Показывать единицы хранения с истёкшим сроком годности на главной странице" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "Показывать залежалые" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "Показывать залежалые единицы хранения на главной странице" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "Показывать незавершённые сборки" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "Показывать незавершённые сборки на главной странице" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "Показывать просроченные сборки" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "Показывать просроченные сборки на главной странице" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "Цена" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "Контактное лицо" msgid "Link to external company information" msgstr "Ссылка на описание компании" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "Изображение" @@ -2867,7 +2867,7 @@ msgstr "Валюта" msgid "Default currency used for this company" msgstr "Для этой компании используется валюта по умолчанию" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "Наименование параметра" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "Значение" msgid "Parameter value" msgstr "Значение параметра" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "Заметка" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "Упаковка" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "Скачать изображение по ссылке" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "Телефон" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "Загрузить изображение" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "Скачать изображение" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "Курс продажи валюты" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "Место хранения по умолчанию" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Категория детали" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "Наименование детали" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "Шаблон" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "Эта деталь является шаблоном для других деталей?" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "Эта деталь является разновидностью другой детали?" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "Разновидность" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "Описание детали" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "Ключевые слова" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "Ключевые слова для улучшения видимости в результатах поиска" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "Ключевые слова для улучшения видимости msgid "Category" msgstr "Категория" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "Категория" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "Внутренний код детали" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "Версия детали" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "Версия" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "Где обычно хранится эта деталь?" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "Минимальный запас" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "Минимально допустимый складской запас" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "Может ли эта деталь быть создана из других деталей?" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "Может ли эта деталь использоваться для создания других деталей?" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "Может ли эта деталь быть продана покупателям?" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "Эта деталь актуальна?" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "Эта деталь виртуальная, как программный продукт или лицензия?" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "Родительская деталь" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Шаблон параметра" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "Артикул или наименование детали" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "Артикул" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "Наименование детали" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "IPN" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "Значение IPN" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "Выберите родительскую деталь" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "Разрешить разновидности" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "Часть 1" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "Часть 2" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "Минимальный складской запас" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "Подходящие изображения не найдены" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "Автор не найден" msgid "No date found" msgstr "Дата не найдена" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "Родительская единица хранения" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "Базовая деталь" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Место хранения" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "Код партии для этой единицы хранения" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "Исходная сборка" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "Удалить при обнулении" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "Удалить эту единицу хранения при обнулении складского запаса" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "Заметки о единице хранения" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "Деталь не является отслеживаемой" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "Серийные номера уже существуют" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "Выбранная деталь отсутствует в спецификации" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "Выбранная компания не является покупателем" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "Форма содержит ошибки" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "Не найдено" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 288eafda57..3b15d5c344 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -25,20 +25,20 @@ msgstr "API-slutpunkt hittades inte" msgid "Error details can be found in the admin panel" msgstr "Information om felet finns under Error i adminpanelen" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Ange datum" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "Fjärrservern returnerade tomt svar" msgid "Supplied URL is not a valid image file" msgstr "Angiven URL är inte en giltig bildfil" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Serienummret finns redan: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Tom serienummersträng" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "Ogiltigt gruppområde: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Ogiltig grupp: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "Ogiltig gruppsekvens: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Ogiltig/ingen grupp {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Inga serienummer hittades" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "Antal unika serienummer ({s}) måste matcha antal ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "Ta bort HTML-taggar från detta värde" @@ -200,7 +189,7 @@ msgstr "Saknad fil" msgid "Missing external link" msgstr "Extern länk saknas" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Välj fil att bifoga" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Välj fil att bifoga" msgid "Link" msgstr "Länk" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Länk till extern URL" @@ -234,10 +223,10 @@ msgstr "Kommentar" msgid "File comment" msgstr "Fil kommentar" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Fel vid namnbyte av fil" msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Namn" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "Serverfel" msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" @@ -425,103 +414,103 @@ msgstr "URL för fjärrbildsfil" msgid "Downloading images from remote URL is not enabled" msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "Tjeckiska" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Tyska" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Grekiska" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "Engelska" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "Spanska" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "Spanska (Mexikanska)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "Farsi / Persiska" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Franska" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "Hebreiska" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Ungerska" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "Italienska" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Japanska" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Koreanska" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norska" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Polska" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "Portugisiska" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "Portugisiska (brasiliansk)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Ryska" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "Svenska" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Thailändska" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Kinesiska" @@ -688,33 +677,24 @@ msgstr "Mottagen mot inköpsorder" msgid "Production" msgstr "Produktion" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Inte en giltig valutakod" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Ogiltigt tecken i delnamn" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN måste matcha regex mönster {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Referens måste matcha mönster {pattern}" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Överskott värde får inte vara negativt" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Överskott får inte överstiga 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "Ogiltigt värde för överskott" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Byggorderreferens" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "Byggorder till vilken detta bygge är tilldelad" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Försäljningsorderreferens" msgid "SalesOrder to which this build is allocated" msgstr "Försäljningsorder till vilken detta bygge allokeras" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Källa Plats" @@ -888,16 +868,16 @@ msgstr "Byggstatus" msgid "Build status code" msgstr "Bygg statuskod" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Batchkod" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Batch-kod för denna byggutdata" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Skapad" @@ -930,7 +910,7 @@ msgstr "Användare som utfärdade denna byggorder" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Användare som ansvarar för denna byggorder" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Extern länk" @@ -1008,9 +988,9 @@ msgstr "Bygg" msgid "Build to allocate parts" msgstr "Bygg för att allokera delar" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Artikel i lager" msgid "Source stock item" msgstr "Källa lagervara" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Installera till" msgid "Destination stock item" msgstr "Destination lagervara" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "Bygg utdata" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "Byggutdata matchar inte överordnad version" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Serienummer" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "Plats" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "Status" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "Acceptera ofullständig" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Stöd för streckkoder" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "Aktivera stöd för streckkodsläsare" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "Delar är virtuella som standard" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "Visa import i vyer" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "Visa importguiden i vissa delvyer" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "Visa pris i formulär" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "Visa delars pris i vissa formulär" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "Visa prishistorik" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "Visa historisk prissättning för del" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "Visa relaterade delar" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "Visa relaterade delar för en del" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "Skapa ursprungligt lager" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "Skapa ursprungligt lager när delen skapas" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "Interna priser" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "Visningsformat för delnamn" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "Formatera för att visa artikelnamnet" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "Aktivera etikettutskrift" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "Aktivera etikettutskrift från webbgränssnittet" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "Etikettbild DPI" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "Aktivera rapporter" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "Aktivera generering av rapporter" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "Debugläge" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "Sidstorlek" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "Standard sidstorlek för PDF-rapporter" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "Aktivera testrapporter" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index b78fdf01fe..11d516fa20 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:43\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -25,20 +25,20 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "" @@ -234,10 +223,10 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index d07b47e9bb..8167453e9f 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -25,20 +25,20 @@ msgstr "API uç noktası bulunamadı" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "Tarih giriniz" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "Tekrarlanan seri no:{sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "Boş seri numarası dizesi" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "Geçersiz grup: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "Geçersiz grup: {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "Seri numarası bulunamadı" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "Eksik dosya" msgid "Missing external link" msgstr "Bozuk dış bağlantı" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "Eklenecek dosyayı seç" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "Eklenecek dosyayı seç" msgid "Link" msgstr "Bağlantı" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" @@ -234,10 +223,10 @@ msgstr "Yorum" msgid "File comment" msgstr "Dosya yorumu" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "Dosya adı değiştirilirken hata" msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "Adı" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "Almanca" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "Yunanca" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "İngilizce" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "İspanyolca(Meksika)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "Fransızca" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "Macarca" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "Japonca" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "Korece" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "Rusça" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "Tay dili" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "Vietnamca" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "Çince" @@ -688,33 +677,24 @@ msgstr "Satın alma emri karşılığında alındı" msgid "Production" msgstr "Üretim" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "Geçerli bir para birimi kodu değil" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "Parça adında geçersiz karakter" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN regex kalıbıyla eşleşmelidir {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "Fazlalık değeri negatif olmamalıdır" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "Fazlalık %100'ü geçmemelidir" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "Satış Emri Referansı" msgid "SalesOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği satış emri" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "Kaynak Konum" @@ -888,16 +868,16 @@ msgstr "Yapım İşi Durumu" msgid "Build status code" msgstr "Yapım işi durum kodu" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "Sıra numarası" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "Oluşturulma tarihi" @@ -930,7 +910,7 @@ msgstr "Bu yapım işi emrini veren kullanıcı" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "Harici Bağlantı" @@ -1008,9 +988,9 @@ msgstr "Yapım İşi" msgid "Build to allocate parts" msgstr "Yapım işi için tahsis edilen parçalar" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "Stok Kalemi" msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "Kurulduğu yer" msgid "Destination stock item" msgstr "Hedef stok kalemi" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "Yapım işi çıktısı için miktarını girin" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "Seri Numaraları" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "Yapım işi çıktısı için seri numaraları girin" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "Konum" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "Durum" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "Gerekli stok tamamen tahsis edilemedi" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "Gerekli yapım işi miktarı tamamlanmadı" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 +#: common/models.py:890 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:891 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 msgid "Barcode Support" msgstr "Barkod Desteği" -#: common/models.py:891 +#: common/models.py:898 msgid "Enable barcode scanner support" msgstr "Barkod tarayıcı desteğini etkinleştir" -#: common/models.py:897 +#: common/models.py:904 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:898 +#: common/models.py:905 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:904 +#: common/models.py:911 msgid "IPN Regex" msgstr "DPN Regex" -#: common/models.py:905 +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "Yinelenen DPN'ye İzin Ver" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "DPN Düzenlemeye İzin Ver" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "Kategori Paremetre Sablonu Kopyala" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "Şablon" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "Montaj" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "Bileşen" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "Satın Alınabilir" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "Satılabilir" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "Takip Edilebilir" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "Sanal" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "Parçalar varsayılan olarak sanaldır" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "Formlarda Fiyat Göster" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "İlgili parçaları göster" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "Hata Ayıklama Modu" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "Sayfa Boyutu" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "PDF raporlar için varsayılan sayfa boyutu" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" -msgstr "günler" +#: common/models.py:1163 +msgid "Sell Expired Stock" +msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" -msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" +#: common/models.py:1173 +msgid "days" +msgstr "günler" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" -msgstr "" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" +msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "Fiyat" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "Aktif" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "Resim" @@ -2867,7 +2867,7 @@ msgstr "Para birimi" msgid "Default currency used for this company" msgstr "Bu şirket için varsayılan para birimi" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "Parametre adı" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "Değer" msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "Not" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "Paketleme" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "çoklu" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "Resmi İndirin" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "Seri numaralı stok kalemi için miktar bir olmalı" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "Varsayılan Konum" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" -msgstr "Sonraki kullanılabilir seri numaraları" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" +msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "Sonraki müsait seri numarası" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "En son seri numarası" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "Parça adı" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "Bu parça başka bir parçanın çeşidi mi?" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "Çeşidi" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "Parça açıklaması" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "Anahtar kelimeler" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "DPN" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "Revizyon" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "Minimum Stok" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "Gerekli" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "Pasif" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "Son Seri Numarası" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "Hesapla" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "Bu seri numarasına sahip stok kalemi zaten var" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "Seri numarası olan ögenin miktarı bir olmalı" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "Bu stok kalemi için tedarikçi parçası seçin" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "Seri numaraları tam sayı listesi olmalı" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seri numaraları zaten mevcut: {exists}" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "Seri numaraları zaten mevcut" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "İşlem notu ekle (isteğe bağlı)" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index 68f4a37723..84c60c4f8e 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -25,20 +25,20 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "" @@ -234,10 +223,10 @@ msgstr "Bình luận" msgid "File comment" msgstr "" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "" @@ -688,33 +677,24 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "" @@ -888,16 +868,16 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "" @@ -930,7 +910,7 @@ msgstr "" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "" @@ -1008,9 +988,9 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "" msgid "Location" msgstr "" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "" msgid "Status" msgstr "Trạng thái" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" +msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" +msgid "Enable barcode scanner support" msgstr "" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 -msgid "Batch Code Template" -msgstr "" - -#: common/models.py:1137 -msgid "Template for generating default batch codes for stock items" -msgstr "" - -#: common/models.py:1142 -msgid "Stock Expiry" -msgstr "" - #: common/models.py:1143 -msgid "Enable stock expiry functionality" +msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1149 -msgid "Sell Expired Stock" +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" msgstr "" #: common/models.py:1150 -msgid "Allow sale of expired stock" +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1151 +msgid "Template for generating default batch codes for stock items" msgstr "" #: common/models.py:1156 -msgid "Stock Stale Time" +msgid "Stock Expiry" msgstr "" #: common/models.py:1157 -msgid "Number of days stock items are considered stale before expiring" +msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1159 -msgid "days" +#: common/models.py:1163 +msgid "Sell Expired Stock" msgstr "" #: common/models.py:1164 -msgid "Build Expired Stock" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1165 -msgid "Allow building with expired stock" +#: common/models.py:1170 +msgid "Stock Stale Time" msgstr "" #: common/models.py:1171 -msgid "Stock Ownership Control" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1172 -msgid "Enable ownership control over stock locations and items" +#: common/models.py:1173 +msgid "days" msgstr "" #: common/models.py:1178 -msgid "Stock Location Default Icon" +msgid "Build Expired Stock" msgstr "" #: common/models.py:1179 -msgid "Stock location default icon (empty means no icon)" -msgstr "" - -#: common/models.py:1184 -msgid "Build Order Reference Pattern" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:1185 -msgid "Required pattern for generating Build Order reference field" +msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1191 -msgid "Sales Order Reference Pattern" +#: common/models.py:1186 +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:1192 -msgid "Required pattern for generating Sales Order reference field" +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1193 +msgid "Stock location default icon (empty means no icon)" msgstr "" #: common/models.py:1198 -msgid "Sales Order Default Shipment" +msgid "Build Order Reference Pattern" msgstr "" #: common/models.py:1199 -msgid "Enable creation of default shipment with sales orders" +msgid "Required pattern for generating Build Order reference field" msgstr "" #: common/models.py:1205 -msgid "Purchase Order Reference Pattern" +msgid "Sales Order Reference Pattern" msgstr "" #: common/models.py:1206 -msgid "Required pattern for generating Purchase Order reference field" +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1212 +msgid "Sales Order Default Shipment" msgstr "" #: common/models.py:1213 -msgid "Enable password forgot" +msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1214 -msgid "Enable password forgot function on the login pages" +#: common/models.py:1219 +msgid "Purchase Order Reference Pattern" msgstr "" #: common/models.py:1220 -msgid "Enable registration" -msgstr "" - -#: common/models.py:1221 -msgid "Enable self-registration for users on the login pages" +msgid "Required pattern for generating Purchase Order reference field" msgstr "" #: common/models.py:1227 -msgid "Enable SSO" +msgid "Enable password forgot" msgstr "" #: common/models.py:1228 -msgid "Enable SSO on the login pages" +msgid "Enable password forgot function on the login pages" msgstr "" #: common/models.py:1234 -msgid "Email required" +msgid "Enable registration" msgstr "" #: common/models.py:1235 -msgid "Require user to supply mail on signup" +msgid "Enable self-registration for users on the login pages" msgstr "" #: common/models.py:1241 -msgid "Auto-fill SSO users" +msgid "Enable SSO" msgstr "" #: common/models.py:1242 -msgid "Automatically fill out user-details from SSO account-data" +msgid "Enable SSO on the login pages" msgstr "" #: common/models.py:1248 -msgid "Mail twice" +msgid "Email required" msgstr "" #: common/models.py:1249 -msgid "On signup ask users twice for their mail" +msgid "Require user to supply mail on signup" msgstr "" #: common/models.py:1255 -msgid "Password twice" +msgid "Auto-fill SSO users" msgstr "" #: common/models.py:1256 -msgid "On signup ask users twice for their password" +msgid "Automatically fill out user-details from SSO account-data" msgstr "" #: common/models.py:1262 -msgid "Group on signup" +msgid "Mail twice" msgstr "" #: common/models.py:1263 -msgid "Group to which new users are assigned on registration" +msgid "On signup ask users twice for their mail" msgstr "" #: common/models.py:1269 -msgid "Enforce MFA" +msgid "Password twice" msgstr "" #: common/models.py:1270 -msgid "Users must use multifactor security." +msgid "On signup ask users twice for their password" msgstr "" #: common/models.py:1276 -msgid "Check plugins on startup" +msgid "Group on signup" msgstr "" #: common/models.py:1277 -msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgid "Group to which new users are assigned on registration" +msgstr "" + +#: common/models.py:1283 +msgid "Enforce MFA" msgstr "" #: common/models.py:1284 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:1290 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:1291 +msgid "Check that all plugins are installed on startup - enable in container enviroments" +msgstr "" + +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "" @@ -2867,7 +2867,7 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "" msgid "Parameter value" msgstr "" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "" msgid "This field is required" msgstr "" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "" msgid "Category" msgstr "" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "Số seri mới nhất" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Kho hàng" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 07922367ed..ec46f20ee0 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-13 01:15+0000\n" -"PO-Revision-Date: 2022-10-13 14:50\n" +"POT-Creation-Date: 2022-10-18 12:51+0000\n" +"PO-Revision-Date: 2022-10-18 14:44\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -25,20 +25,20 @@ msgstr "未找到 API 端点" msgid "Error details can be found in the admin panel" msgstr "在管理面板中可以找到错误详细信息" -#: InvenTree/fields.py:109 +#: InvenTree/fields.py:108 msgid "Enter date" msgstr "输入日期" -#: InvenTree/fields.py:183 build/serializers.py:384 +#: InvenTree/fields.py:182 build/serializers.py:387 #: build/templates/build/sidebar.html:21 company/models.py:524 #: company/templates/company/sidebar.html:25 order/models.py:920 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/so_sidebar.html:17 #: part/templates/part/part_sidebar.html:59 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/models.py:1946 stock/models.py:2054 stock/serializers.py:327 -#: stock/serializers.py:456 stock/serializers.py:537 stock/serializers.py:823 -#: stock/serializers.py:922 stock/serializers.py:1054 +#: stock/models.py:2002 stock/models.py:2110 stock/serializers.py:327 +#: stock/serializers.py:460 stock/serializers.py:541 stock/serializers.py:827 +#: stock/serializers.py:926 stock/serializers.py:1058 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:102 templates/js/translated/bom.js:1146 #: templates/js/translated/company.js:1022 @@ -122,49 +122,38 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: InvenTree/helpers.py:583 -#, python-brace-format -msgid "Duplicate serial: {sn}" -msgstr "重复的序列号: {sn}" - -#: InvenTree/helpers.py:590 order/models.py:325 order/models.py:477 +#: InvenTree/helpers.py:602 order/models.py:325 order/models.py:477 msgid "Invalid quantity provided" msgstr "提供的数量无效" -#: InvenTree/helpers.py:593 +#: InvenTree/helpers.py:610 msgid "Empty serial number string" msgstr "空序列号字符串" -#: InvenTree/helpers.py:625 +#: InvenTree/helpers.py:633 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:662 #, python-brace-format msgid "Invalid group range: {g}" msgstr "无效的组范围: {g}" -#: InvenTree/helpers.py:628 -#, python-brace-format -msgid "Invalid group: {g}" -msgstr "无效的群组: {g}" - -#: InvenTree/helpers.py:656 +#: InvenTree/helpers.py:714 InvenTree/helpers.py:721 InvenTree/helpers.py:736 #, python-brace-format msgid "Invalid group sequence: {g}" msgstr "无效的组序列: {g}" -#: InvenTree/helpers.py:664 -#, python-brace-format -msgid "Invalid/no group {group}" -msgstr "无效的群组: {group}" - -#: InvenTree/helpers.py:670 +#: InvenTree/helpers.py:746 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:674 +#: InvenTree/helpers.py:749 #, python-brace-format msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" -#: InvenTree/helpers.py:873 +#: InvenTree/helpers.py:948 msgid "Remove HTML tags from this value" msgstr "" @@ -200,7 +189,7 @@ msgstr "缺少文件" msgid "Missing external link" msgstr "缺少外部链接" -#: InvenTree/models.py:405 stock/models.py:2048 +#: InvenTree/models.py:405 stock/models.py:2104 #: templates/js/translated/attachment.js:103 #: templates/js/translated/attachment.js:241 msgid "Attachment" @@ -212,7 +201,7 @@ msgstr "选择附件" #: InvenTree/models.py:412 company/models.py:124 company/models.py:276 #: company/models.py:511 order/models.py:84 order/models.py:1259 -#: part/models.py:802 part/templates/part/part_scheduling.html:11 +#: part/models.py:816 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: templates/js/translated/company.js:691 #: templates/js/translated/company.js:1011 @@ -220,8 +209,8 @@ msgstr "选择附件" msgid "Link" msgstr "链接" -#: InvenTree/models.py:413 build/models.py:290 part/models.py:803 -#: stock/models.py:604 +#: InvenTree/models.py:413 build/models.py:290 part/models.py:817 +#: stock/models.py:660 msgid "Link to external URL" msgstr "链接到外部 URL" @@ -234,10 +223,10 @@ msgstr "注释" msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1679 -#: common/models.py:1680 common/models.py:1903 common/models.py:1904 -#: common/models.py:2166 common/models.py:2167 part/models.py:2240 -#: part/models.py:2260 plugin/models.py:260 plugin/models.py:261 +#: InvenTree/models.py:422 InvenTree/models.py:423 common/models.py:1693 +#: common/models.py:1694 common/models.py:1917 common/models.py:1918 +#: common/models.py:2180 common/models.py:2181 part/models.py:2254 +#: part/models.py:2274 plugin/models.py:260 plugin/models.py:261 #: report/templates/report/inventree_test_report_base.html:96 #: templates/js/translated/stock.js:2649 msgid "User" @@ -276,9 +265,9 @@ msgstr "重命名文件出错" msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1889 -#: company/models.py:358 label/models.py:101 part/models.py:746 -#: part/models.py:2418 plugin/models.py:94 report/models.py:152 +#: InvenTree/models.py:557 InvenTree/models.py:558 common/models.py:1903 +#: company/models.py:358 label/models.py:101 part/models.py:760 +#: part/models.py:2432 plugin/models.py:94 report/models.py:152 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/plugin.html:51 #: templates/InvenTree/settings/plugin.html:134 @@ -297,7 +286,7 @@ msgstr "名称" #: company/models.py:517 company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:108 -#: order/models.py:82 part/models.py:769 part/models.py:2430 +#: order/models.py:82 part/models.py:783 part/models.py:2444 #: part/templates/part/category.html:80 part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:165 #: report/models.py:507 report/models.py:551 @@ -358,7 +347,7 @@ msgstr "服务器错误" msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/serializers.py:55 part/models.py:2766 +#: InvenTree/serializers.py:55 part/models.py:2780 msgid "Must be a valid number" msgstr "必须是有效数字" @@ -425,103 +414,103 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:615 +#: InvenTree/settings.py:621 msgid "Czech" msgstr "捷克语" -#: InvenTree/settings.py:616 +#: InvenTree/settings.py:622 msgid "Danish" msgstr "" -#: InvenTree/settings.py:617 +#: InvenTree/settings.py:623 msgid "German" msgstr "德语" -#: InvenTree/settings.py:618 +#: InvenTree/settings.py:624 msgid "Greek" msgstr "希腊语" -#: InvenTree/settings.py:619 +#: InvenTree/settings.py:625 msgid "English" msgstr "英语" -#: InvenTree/settings.py:620 +#: InvenTree/settings.py:626 msgid "Spanish" msgstr "西班牙语" -#: InvenTree/settings.py:621 +#: InvenTree/settings.py:627 msgid "Spanish (Mexican)" msgstr "西班牙语(墨西哥)" -#: InvenTree/settings.py:622 +#: InvenTree/settings.py:628 msgid "Farsi / Persian" msgstr "波斯语" -#: InvenTree/settings.py:623 +#: InvenTree/settings.py:629 msgid "French" msgstr "法语" -#: InvenTree/settings.py:624 +#: InvenTree/settings.py:630 msgid "Hebrew" msgstr "希伯来语" -#: InvenTree/settings.py:625 +#: InvenTree/settings.py:631 msgid "Hungarian" msgstr "匈牙利语" -#: InvenTree/settings.py:626 +#: InvenTree/settings.py:632 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:627 +#: InvenTree/settings.py:633 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:628 +#: InvenTree/settings.py:634 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:629 +#: InvenTree/settings.py:635 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:630 +#: InvenTree/settings.py:636 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:631 +#: InvenTree/settings.py:637 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:632 +#: InvenTree/settings.py:638 msgid "Portuguese" msgstr "葡萄牙语" -#: InvenTree/settings.py:633 +#: InvenTree/settings.py:639 msgid "Portuguese (Brazilian)" msgstr "葡萄牙语 (巴西)" -#: InvenTree/settings.py:634 +#: InvenTree/settings.py:640 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:635 +#: InvenTree/settings.py:641 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:636 +#: InvenTree/settings.py:642 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:637 +#: InvenTree/settings.py:643 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:638 +#: InvenTree/settings.py:644 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:639 +#: InvenTree/settings.py:645 msgid "Chinese" msgstr "中文(简体)" @@ -688,33 +677,24 @@ msgstr "收到定购单" msgid "Production" msgstr "生产中" -#: InvenTree/validators.py:18 +#: InvenTree/validators.py:19 msgid "Not a valid currency code" msgstr "不是有效的货币代码" -#: InvenTree/validators.py:45 -msgid "Invalid character in part name" -msgstr "商品名称中存在无效字符" - -#: InvenTree/validators.py:57 +#: InvenTree/validators.py:90 #, python-brace-format msgid "IPN must match regex pattern {pat}" msgstr "IPN 必须匹配正则表达式 {pat}" -#: InvenTree/validators.py:68 InvenTree/validators.py:79 -#, python-brace-format -msgid "Reference must match pattern {pattern}" -msgstr "引用必须匹配模板 {pattern}" - -#: InvenTree/validators.py:102 InvenTree/validators.py:118 +#: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" msgstr "备损值不能为负数" -#: InvenTree/validators.py:120 +#: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" msgstr "备损不能超过 100%" -#: InvenTree/validators.py:127 +#: InvenTree/validators.py:157 msgid "Invalid value for overage" msgstr "无效的备损值" @@ -774,7 +754,7 @@ msgid "Build Order Reference" msgstr "相关生产订单" #: build/models.py:155 order/models.py:240 order/models.py:632 -#: order/models.py:918 part/models.py:2676 +#: order/models.py:918 part/models.py:2690 #: part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_po_report.html:91 #: report/templates/report/inventree_so_report.html:92 @@ -801,17 +781,17 @@ msgstr "此次生产匹配的订单" #: build/models.py:180 build/templates/build/build_base.html:80 #: build/templates/build/detail.html:29 company/models.py:679 #: order/models.py:1015 order/models.py:1126 order/models.py:1127 -#: part/models.py:343 part/models.py:2186 part/models.py:2201 -#: part/models.py:2220 part/models.py:2238 part/models.py:2337 -#: part/models.py:2464 part/models.py:2556 part/models.py:2641 -#: part/models.py:2935 part/serializers.py:828 +#: part/models.py:343 part/models.py:2200 part/models.py:2215 +#: part/models.py:2234 part/models.py:2252 part/models.py:2351 +#: part/models.py:2478 part/models.py:2570 part/models.py:2655 +#: part/models.py:2949 part/serializers.py:828 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 #: report/templates/report/inventree_build_order_base.html:109 #: report/templates/report/inventree_po_report.html:89 #: report/templates/report/inventree_so_report.html:90 stock/serializers.py:86 -#: stock/serializers.py:490 templates/InvenTree/search.html:82 +#: stock/serializers.py:494 templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 @@ -847,7 +827,7 @@ msgstr "相关销售订单" msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" -#: build/models.py:202 build/serializers.py:819 +#: build/models.py:202 build/serializers.py:822 #: templates/js/translated/build.js:2146 templates/js/translated/order.js:3173 msgid "Source Location" msgstr "来源地点" @@ -888,16 +868,16 @@ msgstr "生产状态" msgid "Build status code" msgstr "生产状态代码" -#: build/models.py:245 build/serializers.py:225 order/serializers.py:464 -#: stock/models.py:608 templates/js/translated/order.js:1496 +#: build/models.py:245 build/serializers.py:224 order/serializers.py:464 +#: stock/models.py:664 templates/js/translated/order.js:1496 msgid "Batch Code" msgstr "批量代码" -#: build/models.py:249 build/serializers.py:226 +#: build/models.py:249 build/serializers.py:225 msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:252 order/models.py:86 part/models.py:938 +#: build/models.py:252 order/models.py:86 part/models.py:952 #: part/templates/part/part_base.html:318 templates/js/translated/order.js:2844 msgid "Creation Date" msgstr "创建日期" @@ -930,7 +910,7 @@ msgstr "发布此生产订单的用户" #: build/models.py:283 build/templates/build/build_base.html:193 #: build/templates/build/detail.html:115 order/models.py:100 #: order/templates/order/order_base.html:185 -#: order/templates/order/sales_order_base.html:183 part/models.py:942 +#: order/templates/order/sales_order_base.html:183 part/models.py:956 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2606 templates/js/translated/order.js:2022 msgid "Responsible" @@ -943,7 +923,7 @@ msgstr "负责此生产订单的用户" #: build/models.py:289 build/templates/build/detail.html:101 #: company/templates/company/manufacturer_part.html:107 #: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:359 stock/models.py:602 +#: part/templates/part/part_base.html:361 stock/models.py:658 #: stock/templates/stock/item_base.html:203 msgid "External Link" msgstr "外部链接" @@ -1008,9 +988,9 @@ msgstr "生产" msgid "Build to allocate parts" msgstr "生产以分配部件" -#: build/models.py:1346 build/serializers.py:660 order/serializers.py:1035 -#: order/serializers.py:1056 stock/serializers.py:394 stock/serializers.py:754 -#: stock/serializers.py:880 stock/templates/stock/item_base.html:10 +#: build/models.py:1346 build/serializers.py:663 order/serializers.py:1039 +#: order/serializers.py:1060 stock/serializers.py:398 stock/serializers.py:758 +#: stock/serializers.py:884 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:197 #: templates/js/translated/build.js:790 templates/js/translated/build.js:795 @@ -1027,13 +1007,13 @@ msgstr "库存项" msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1359 build/serializers.py:193 +#: build/models.py:1359 build/serializers.py:192 #: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:1711 +#: build/templates/build/detail.html:34 common/models.py:1725 #: company/templates/company/supplier_part.html:341 order/models.py:911 -#: order/models.py:1437 order/serializers.py:1209 +#: order/models.py:1437 order/serializers.py:1213 #: order/templates/order/order_wizard/match_parts.html:30 part/forms.py:40 -#: part/models.py:2657 part/templates/part/detail.html:938 +#: part/models.py:2671 part/templates/part/detail.html:938 #: part/templates/part/detail.html:1024 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 @@ -1076,75 +1056,75 @@ msgstr "安装到" msgid "Destination stock item" msgstr "目标库存项" -#: build/serializers.py:138 build/serializers.py:689 +#: build/serializers.py:137 build/serializers.py:692 #: templates/js/translated/build.js:1215 msgid "Build Output" msgstr "生产产出" -#: build/serializers.py:150 +#: build/serializers.py:149 msgid "Build output does not match the parent build" msgstr "生产产出与对应生产不匹配" -#: build/serializers.py:154 +#: build/serializers.py:153 msgid "Output part does not match BuildOrder part" msgstr "产出部件与生产订单部件不匹配" -#: build/serializers.py:158 +#: build/serializers.py:157 msgid "This build output has already been completed" msgstr "此生产产出已经完成" -#: build/serializers.py:169 +#: build/serializers.py:168 msgid "This build output is not fully allocated" msgstr "生产产出未被完成分配" -#: build/serializers.py:194 +#: build/serializers.py:193 msgid "Enter quantity for build output" msgstr "输入生产产出数量" -#: build/serializers.py:208 build/serializers.py:680 order/models.py:323 +#: build/serializers.py:207 build/serializers.py:683 order/models.py:323 #: order/serializers.py:304 order/serializers.py:459 part/serializers.py:558 -#: part/serializers.py:991 stock/models.py:462 stock/models.py:1197 +#: part/serializers.py:991 stock/models.py:518 stock/models.py:1253 #: stock/serializers.py:300 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" -#: build/serializers.py:215 +#: build/serializers.py:214 msgid "Integer quantity required for trackable parts" msgstr "对于可追踪的部件,需要整数型数值" -#: build/serializers.py:218 +#: build/serializers.py:217 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "需要整数型数值,因为BOM包含可追踪的部件" -#: build/serializers.py:232 order/serializers.py:472 order/serializers.py:1213 +#: build/serializers.py:231 order/serializers.py:472 order/serializers.py:1217 #: stock/serializers.py:309 templates/js/translated/order.js:1507 #: templates/js/translated/stock.js:271 templates/js/translated/stock.js:459 msgid "Serial Numbers" msgstr "序列号" -#: build/serializers.py:233 +#: build/serializers.py:232 msgid "Enter serial numbers for build outputs" msgstr "输入生产产出的序列号" -#: build/serializers.py:246 +#: build/serializers.py:245 msgid "Auto Allocate Serial Numbers" msgstr "自动分配序列号" -#: build/serializers.py:247 +#: build/serializers.py:246 msgid "Automatically allocate required items with matching serial numbers" msgstr "自动为所需项分配对应的序列号" -#: build/serializers.py:278 stock/api.py:577 -msgid "The following serial numbers already exist" -msgstr "以下的序列号已存在" +#: build/serializers.py:281 stock/api.py:589 +msgid "The following serial numbers already exist or are invalid" +msgstr "" -#: build/serializers.py:327 build/serializers.py:396 +#: build/serializers.py:330 build/serializers.py:399 msgid "A list of build outputs must be provided" msgstr "必须提供生产产出列表" -#: build/serializers.py:366 order/serializers.py:445 order/serializers.py:552 -#: stock/serializers.py:320 stock/serializers.py:451 stock/serializers.py:532 -#: stock/serializers.py:915 stock/serializers.py:1148 +#: build/serializers.py:369 order/serializers.py:445 order/serializers.py:556 +#: stock/serializers.py:320 stock/serializers.py:455 stock/serializers.py:536 +#: stock/serializers.py:919 stock/serializers.py:1152 #: stock/templates/stock/item_base.html:388 #: templates/js/translated/barcode.js:455 #: templates/js/translated/barcode.js:644 templates/js/translated/build.js:802 @@ -1157,11 +1137,11 @@ msgstr "必须提供生产产出列表" msgid "Location" msgstr "地点" -#: build/serializers.py:367 +#: build/serializers.py:370 msgid "Location for completed build outputs" msgstr "已完成生产产出的仓储地点" -#: build/serializers.py:373 build/templates/build/build_base.html:145 +#: build/serializers.py:376 build/templates/build/build_base.html:145 #: build/templates/build/detail.html:62 order/models.py:651 #: order/serializers.py:482 stock/templates/stock/item_base.html:421 #: templates/js/translated/barcode.js:205 templates/js/translated/build.js:2578 @@ -1171,145 +1151,145 @@ msgstr "已完成生产产出的仓储地点" msgid "Status" msgstr "状态" -#: build/serializers.py:379 +#: build/serializers.py:382 msgid "Accept Incomplete Allocation" msgstr "接受不完整的分配" -#: build/serializers.py:380 +#: build/serializers.py:383 msgid "Complete outputs if stock has not been fully allocated" msgstr "如果库存尚未完成分配,完成产出" -#: build/serializers.py:449 +#: build/serializers.py:452 msgid "Remove Allocated Stock" msgstr "移除已分配的库存" -#: build/serializers.py:450 +#: build/serializers.py:453 msgid "Subtract any stock which has already been allocated to this build" msgstr "减去已经分配至此生产的库存" -#: build/serializers.py:456 +#: build/serializers.py:459 msgid "Remove Incomplete Outputs" msgstr "移除未完成的产出" -#: build/serializers.py:457 +#: build/serializers.py:460 msgid "Delete any build outputs which have not been completed" msgstr "删除所有未完成的生产产出" -#: build/serializers.py:485 +#: build/serializers.py:488 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:486 +#: build/serializers.py:489 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:509 +#: build/serializers.py:512 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:511 +#: build/serializers.py:514 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:521 +#: build/serializers.py:524 msgid "Some stock items have been overallocated" msgstr "一些库存项已被过度分配" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Accept Unallocated" msgstr "接受未分配的" -#: build/serializers.py:527 +#: build/serializers.py:530 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "接受库存项未被完成分配至此生产订单" -#: build/serializers.py:537 templates/js/translated/build.js:258 +#: build/serializers.py:540 templates/js/translated/build.js:258 msgid "Required stock has not been fully allocated" msgstr "所需库存尚未完全分配" -#: build/serializers.py:542 order/serializers.py:208 order/serializers.py:1103 +#: build/serializers.py:545 order/serializers.py:208 order/serializers.py:1107 msgid "Accept Incomplete" msgstr "接受未完成" -#: build/serializers.py:543 +#: build/serializers.py:546 msgid "Accept that the required number of build outputs have not been completed" msgstr "接受所需的生产产出未完成" -#: build/serializers.py:553 templates/js/translated/build.js:262 +#: build/serializers.py:556 templates/js/translated/build.js:262 msgid "Required build quantity has not been completed" msgstr "所需生产数量尚未完成" -#: build/serializers.py:562 templates/js/translated/build.js:246 +#: build/serializers.py:565 templates/js/translated/build.js:246 msgid "Build order has incomplete outputs" msgstr "生产订单有未完成的产出" -#: build/serializers.py:592 build/serializers.py:637 part/models.py:2793 -#: part/models.py:2927 +#: build/serializers.py:595 build/serializers.py:640 part/models.py:2807 +#: part/models.py:2941 msgid "BOM Item" msgstr "BOM项" -#: build/serializers.py:602 +#: build/serializers.py:605 msgid "Build output" msgstr "生产产出" -#: build/serializers.py:610 +#: build/serializers.py:613 msgid "Build output must point to the same build" msgstr "生产产出必须指向相同的生产" -#: build/serializers.py:651 +#: build/serializers.py:654 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必须与生产订单指向相同的部件" -#: build/serializers.py:666 stock/serializers.py:767 +#: build/serializers.py:669 stock/serializers.py:771 msgid "Item must be in stock" msgstr "项目必须在库存中" -#: build/serializers.py:724 order/serializers.py:1093 +#: build/serializers.py:727 order/serializers.py:1097 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "可用量 ({q}) 超出了限制" -#: build/serializers.py:730 +#: build/serializers.py:733 msgid "Build output must be specified for allocation of tracked parts" msgstr "对于被追踪的部件的分配,必须指定生产产出" -#: build/serializers.py:737 +#: build/serializers.py:740 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "对于未被追踪的部件,无法指定生产产出" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "This stock item has already been allocated to this build output" msgstr "此库存项已被分配至此生产产出" -#: build/serializers.py:765 order/serializers.py:1373 +#: build/serializers.py:768 order/serializers.py:1381 msgid "Allocation items must be provided" msgstr "必须提供分配的项" -#: build/serializers.py:820 +#: build/serializers.py:823 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "部件来源的仓储地点(留空则可来源于任何仓储地点)" -#: build/serializers.py:828 +#: build/serializers.py:831 msgid "Exclude Location" msgstr "排除地点" -#: build/serializers.py:829 +#: build/serializers.py:832 msgid "Exclude stock items from this selected location" msgstr "从该选定的仓储地点排除库存项" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Interchangeable Stock" msgstr "可互换的库存" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Stock items in multiple locations can be used interchangeably" msgstr "多处地点的库存项可以互换使用" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Substitute Stock" msgstr "可替换的库存" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Allow allocation of substitute parts" msgstr "允许分配可替换的部件" @@ -1804,853 +1784,869 @@ msgstr "" msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:890 templates/InvenTree/settings/sidebar.html:33 -msgid "Barcode Support" +#: common/models.py:890 +msgid "Automatic Backup" msgstr "" #: common/models.py:891 -msgid "Enable barcode scanner support" -msgstr "启用条形码扫描支持" +msgid "Enable automatic backup of database and media files" +msgstr "" -#: common/models.py:897 -msgid "Barcode Webcam Support" +#: common/models.py:897 templates/InvenTree/settings/sidebar.html:33 +msgid "Barcode Support" msgstr "" #: common/models.py:898 -msgid "Allow barcode scanning via webcam in browser" -msgstr "" +msgid "Enable barcode scanner support" +msgstr "启用条形码扫描支持" #: common/models.py:904 -msgid "IPN Regex" +msgid "Barcode Webcam Support" msgstr "" #: common/models.py:905 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:911 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:912 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:909 +#: common/models.py:916 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:910 +#: common/models.py:917 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:916 +#: common/models.py:923 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:917 +#: common/models.py:924 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:923 +#: common/models.py:930 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:924 +#: common/models.py:931 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:930 +#: common/models.py:937 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:931 +#: common/models.py:938 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:937 +#: common/models.py:944 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:938 +#: common/models.py:945 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:944 +#: common/models.py:951 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:945 +#: common/models.py:952 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:951 part/models.py:2466 report/models.py:158 +#: common/models.py:958 part/models.py:2480 report/models.py:158 #: templates/js/translated/table_filters.js:38 #: templates/js/translated/table_filters.js:492 msgid "Template" msgstr "模板" -#: common/models.py:952 +#: common/models.py:959 msgid "Parts are templates by default" msgstr "" -#: common/models.py:958 part/models.py:894 templates/js/translated/bom.js:1526 +#: common/models.py:965 part/models.py:908 templates/js/translated/bom.js:1526 #: templates/js/translated/table_filters.js:184 #: templates/js/translated/table_filters.js:455 msgid "Assembly" msgstr "组装" -#: common/models.py:959 +#: common/models.py:966 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:965 part/models.py:900 +#: common/models.py:972 part/models.py:914 #: templates/js/translated/table_filters.js:463 msgid "Component" msgstr "组件" -#: common/models.py:966 +#: common/models.py:973 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:972 part/models.py:911 +#: common/models.py:979 part/models.py:925 msgid "Purchaseable" msgstr "可购买" -#: common/models.py:973 +#: common/models.py:980 msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:979 part/models.py:916 +#: common/models.py:986 part/models.py:930 #: templates/js/translated/table_filters.js:484 msgid "Salable" msgstr "可销售" -#: common/models.py:980 +#: common/models.py:987 msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:986 part/models.py:906 +#: common/models.py:993 part/models.py:920 #: templates/js/translated/table_filters.js:46 #: templates/js/translated/table_filters.js:116 #: templates/js/translated/table_filters.js:496 msgid "Trackable" msgstr "可追踪" -#: common/models.py:987 +#: common/models.py:994 msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:993 part/models.py:926 +#: common/models.py:1000 part/models.py:940 #: part/templates/part/part_base.html:156 #: templates/js/translated/table_filters.js:42 #: templates/js/translated/table_filters.js:500 msgid "Virtual" msgstr "虚拟" -#: common/models.py:994 +#: common/models.py:1001 msgid "Parts are virtual by default" msgstr "商品默认是虚拟的" -#: common/models.py:1000 +#: common/models.py:1007 msgid "Show Import in Views" msgstr "视图中显示导入" -#: common/models.py:1001 +#: common/models.py:1008 msgid "Display the import wizard in some part views" msgstr "在一些商品视图中显示导入向导" -#: common/models.py:1007 +#: common/models.py:1014 msgid "Show Price in Forms" msgstr "在表格中显示价格" -#: common/models.py:1008 +#: common/models.py:1015 msgid "Display part price in some forms" msgstr "以某些表格显示商品价格" -#: common/models.py:1019 +#: common/models.py:1026 msgid "Show Price in BOM" msgstr "" -#: common/models.py:1020 +#: common/models.py:1027 msgid "Include pricing information in BOM tables" msgstr "" -#: common/models.py:1031 +#: common/models.py:1038 msgid "Show Price History" msgstr "" -#: common/models.py:1032 +#: common/models.py:1039 msgid "Display historical pricing for Part" msgstr "" -#: common/models.py:1038 +#: common/models.py:1045 msgid "Show related parts" msgstr "显示相关商品" -#: common/models.py:1039 +#: common/models.py:1046 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1045 +#: common/models.py:1052 msgid "Create initial stock" msgstr "创建初始库存" -#: common/models.py:1046 +#: common/models.py:1053 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:1052 +#: common/models.py:1059 msgid "Internal Prices" msgstr "内部价格" -#: common/models.py:1053 +#: common/models.py:1060 msgid "Enable internal prices for parts" msgstr "启用内部商品价格" -#: common/models.py:1059 +#: common/models.py:1066 msgid "Internal Price as BOM-Price" msgstr "内部价格为BOM价格" -#: common/models.py:1060 +#: common/models.py:1067 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "在 BOM价格计算中使用内部价格(如设置)" -#: common/models.py:1066 +#: common/models.py:1073 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1067 +#: common/models.py:1074 msgid "Format to display the part name" msgstr "" -#: common/models.py:1074 +#: common/models.py:1081 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1075 +#: common/models.py:1082 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1080 +#: common/models.py:1087 msgid "Enable label printing" msgstr "" -#: common/models.py:1081 +#: common/models.py:1088 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1087 +#: common/models.py:1094 msgid "Label Image DPI" msgstr "" -#: common/models.py:1088 +#: common/models.py:1095 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1097 +#: common/models.py:1104 msgid "Enable Reports" msgstr "" -#: common/models.py:1098 +#: common/models.py:1105 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1104 templates/stats.html:25 +#: common/models.py:1111 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:1105 +#: common/models.py:1112 msgid "Generate reports in debug mode (HTML output)" msgstr "在调试模式生成报告(HTML输出)" -#: common/models.py:1111 +#: common/models.py:1118 msgid "Page Size" msgstr "页面大小" -#: common/models.py:1112 +#: common/models.py:1119 msgid "Default page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: common/models.py:1122 +#: common/models.py:1129 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1123 +#: common/models.py:1130 msgid "Enable generation of test reports" msgstr "启用生成测试报表" -#: common/models.py:1129 +#: common/models.py:1136 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1130 +#: common/models.py:1137 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1136 +#: common/models.py:1143 +msgid "Globally Unique Serials" +msgstr "" + +#: common/models.py:1144 +msgid "Serial numbers for stock items must be globally unique" +msgstr "" + +#: common/models.py:1150 msgid "Batch Code Template" msgstr "" -#: common/models.py:1137 +#: common/models.py:1151 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1142 +#: common/models.py:1156 msgid "Stock Expiry" msgstr "库存到期" -#: common/models.py:1143 +#: common/models.py:1157 msgid "Enable stock expiry functionality" msgstr "启用库存到期功能" -#: common/models.py:1149 +#: common/models.py:1163 msgid "Sell Expired Stock" msgstr "销售过期库存" -#: common/models.py:1150 +#: common/models.py:1164 msgid "Allow sale of expired stock" msgstr "允许销售过期库存" -#: common/models.py:1156 +#: common/models.py:1170 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1157 +#: common/models.py:1171 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1159 +#: common/models.py:1173 msgid "days" msgstr "天" -#: common/models.py:1164 +#: common/models.py:1178 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1165 +#: common/models.py:1179 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1171 +#: common/models.py:1185 msgid "Stock Ownership Control" msgstr "库存所有权控制" -#: common/models.py:1172 +#: common/models.py:1186 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1178 +#: common/models.py:1192 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1179 +#: common/models.py:1193 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1184 +#: common/models.py:1198 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1185 +#: common/models.py:1199 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1191 +#: common/models.py:1205 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1192 +#: common/models.py:1206 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1198 +#: common/models.py:1212 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1199 +#: common/models.py:1213 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1205 +#: common/models.py:1219 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1206 +#: common/models.py:1220 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1213 +#: common/models.py:1227 msgid "Enable password forgot" msgstr "" -#: common/models.py:1214 +#: common/models.py:1228 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1220 +#: common/models.py:1234 msgid "Enable registration" msgstr "" -#: common/models.py:1221 +#: common/models.py:1235 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1227 +#: common/models.py:1241 msgid "Enable SSO" msgstr "" -#: common/models.py:1228 +#: common/models.py:1242 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1234 +#: common/models.py:1248 msgid "Email required" msgstr "" -#: common/models.py:1235 +#: common/models.py:1249 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1241 +#: common/models.py:1255 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1242 +#: common/models.py:1256 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1248 +#: common/models.py:1262 msgid "Mail twice" msgstr "" -#: common/models.py:1249 +#: common/models.py:1263 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1255 +#: common/models.py:1269 msgid "Password twice" msgstr "" -#: common/models.py:1256 +#: common/models.py:1270 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1262 +#: common/models.py:1276 msgid "Group on signup" msgstr "" -#: common/models.py:1263 +#: common/models.py:1277 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1269 +#: common/models.py:1283 msgid "Enforce MFA" msgstr "" -#: common/models.py:1270 +#: common/models.py:1284 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1276 +#: common/models.py:1290 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1277 +#: common/models.py:1291 msgid "Check that all plugins are installed on startup - enable in container enviroments" msgstr "" -#: common/models.py:1284 +#: common/models.py:1298 msgid "Check plugin signatures" msgstr "" -#: common/models.py:1285 +#: common/models.py:1299 msgid "Check and show signatures for plugins" msgstr "" -#: common/models.py:1292 +#: common/models.py:1306 msgid "Enable URL integration" msgstr "" -#: common/models.py:1293 +#: common/models.py:1307 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1300 +#: common/models.py:1314 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1301 +#: common/models.py:1315 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1308 +#: common/models.py:1322 msgid "Enable app integration" msgstr "" -#: common/models.py:1309 +#: common/models.py:1323 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1316 +#: common/models.py:1330 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1317 +#: common/models.py:1331 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1324 +#: common/models.py:1338 msgid "Enable event integration" msgstr "" -#: common/models.py:1325 +#: common/models.py:1339 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1344 common/models.py:1672 +#: common/models.py:1358 common/models.py:1686 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1366 +#: common/models.py:1380 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1367 +#: common/models.py:1381 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1373 +#: common/models.py:1387 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1374 +#: common/models.py:1388 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1380 +#: common/models.py:1394 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:1381 +#: common/models.py:1395 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:1387 +#: common/models.py:1401 msgid "Recent Part Count" msgstr "" -#: common/models.py:1388 +#: common/models.py:1402 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:1394 +#: common/models.py:1408 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1395 +#: common/models.py:1409 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1401 +#: common/models.py:1415 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1402 +#: common/models.py:1416 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1408 +#: common/models.py:1422 msgid "Recent Stock Count" msgstr "" -#: common/models.py:1409 +#: common/models.py:1423 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:1415 +#: common/models.py:1429 msgid "Show low stock" msgstr "" -#: common/models.py:1416 +#: common/models.py:1430 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1422 +#: common/models.py:1436 msgid "Show depleted stock" msgstr "" -#: common/models.py:1423 +#: common/models.py:1437 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:1429 +#: common/models.py:1443 msgid "Show needed stock" msgstr "" -#: common/models.py:1430 +#: common/models.py:1444 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:1436 +#: common/models.py:1450 msgid "Show expired stock" msgstr "" -#: common/models.py:1437 +#: common/models.py:1451 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:1443 +#: common/models.py:1457 msgid "Show stale stock" msgstr "" -#: common/models.py:1444 +#: common/models.py:1458 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:1450 +#: common/models.py:1464 msgid "Show pending builds" msgstr "" -#: common/models.py:1451 +#: common/models.py:1465 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:1457 +#: common/models.py:1471 msgid "Show overdue builds" msgstr "显示逾期生产" -#: common/models.py:1458 +#: common/models.py:1472 msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:1464 +#: common/models.py:1478 msgid "Show outstanding POs" msgstr "" -#: common/models.py:1465 +#: common/models.py:1479 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:1471 +#: common/models.py:1485 msgid "Show overdue POs" msgstr "" -#: common/models.py:1472 +#: common/models.py:1486 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:1478 +#: common/models.py:1492 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:1479 +#: common/models.py:1493 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:1485 +#: common/models.py:1499 msgid "Show overdue SOs" msgstr "" -#: common/models.py:1486 +#: common/models.py:1500 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:1492 +#: common/models.py:1506 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:1493 +#: common/models.py:1507 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:1499 +#: common/models.py:1513 msgid "Inline report display" msgstr "" -#: common/models.py:1500 +#: common/models.py:1514 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:1506 +#: common/models.py:1520 msgid "Search Parts" msgstr "" -#: common/models.py:1507 +#: common/models.py:1521 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:1513 +#: common/models.py:1527 msgid "Seach Supplier Parts" msgstr "" -#: common/models.py:1514 +#: common/models.py:1528 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:1520 +#: common/models.py:1534 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:1521 +#: common/models.py:1535 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:1527 +#: common/models.py:1541 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1542 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:1534 +#: common/models.py:1548 msgid "Search Categories" msgstr "" -#: common/models.py:1535 +#: common/models.py:1549 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:1541 +#: common/models.py:1555 msgid "Search Stock" msgstr "" -#: common/models.py:1542 +#: common/models.py:1556 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:1548 +#: common/models.py:1562 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:1549 +#: common/models.py:1563 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:1555 +#: common/models.py:1569 msgid "Search Locations" msgstr "" -#: common/models.py:1556 +#: common/models.py:1570 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:1562 +#: common/models.py:1576 msgid "Search Companies" msgstr "" -#: common/models.py:1563 +#: common/models.py:1577 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:1569 +#: common/models.py:1583 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:1570 +#: common/models.py:1584 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:1576 +#: common/models.py:1590 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:1577 +#: common/models.py:1591 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:1583 +#: common/models.py:1597 msgid "Search Sales Orders" msgstr "" -#: common/models.py:1584 +#: common/models.py:1598 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:1590 +#: common/models.py:1604 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:1591 +#: common/models.py:1605 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:1597 +#: common/models.py:1611 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:1598 +#: common/models.py:1612 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:1604 +#: common/models.py:1618 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:1605 +#: common/models.py:1619 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:1611 +#: common/models.py:1625 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:1612 +#: common/models.py:1626 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:1618 +#: common/models.py:1632 msgid "Fixed Navbar" msgstr "" -#: common/models.py:1619 +#: common/models.py:1633 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:1625 +#: common/models.py:1639 msgid "Date Format" msgstr "" -#: common/models.py:1626 +#: common/models.py:1640 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:1640 part/templates/part/detail.html:41 +#: common/models.py:1654 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:1641 +#: common/models.py:1655 msgid "Display part scheduling information" msgstr "" -#: common/models.py:1647 +#: common/models.py:1661 msgid "Table String Length" msgstr "" -#: common/models.py:1648 +#: common/models.py:1662 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:1712 +#: common/models.py:1726 msgid "Price break quantity" msgstr "" -#: common/models.py:1719 company/serializers.py:372 +#: common/models.py:1733 company/serializers.py:372 #: company/templates/company/supplier_part.html:346 order/models.py:952 #: templates/js/translated/part.js:1103 templates/js/translated/part.js:2221 msgid "Price" msgstr "价格" -#: common/models.py:1720 +#: common/models.py:1734 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1880 common/models.py:2058 +#: common/models.py:1894 common/models.py:2072 msgid "Endpoint" msgstr "" -#: common/models.py:1881 +#: common/models.py:1895 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:1890 +#: common/models.py:1904 msgid "Name for this webhook" msgstr "" -#: common/models.py:1895 part/models.py:921 plugin/models.py:100 +#: common/models.py:1909 part/models.py:935 plugin/models.py:100 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:112 #: templates/js/translated/table_filters.js:324 @@ -2658,67 +2654,67 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:1896 +#: common/models.py:1910 msgid "Is this webhook active" msgstr "" -#: common/models.py:1910 +#: common/models.py:1924 msgid "Token" msgstr "令牌" -#: common/models.py:1911 +#: common/models.py:1925 msgid "Token for access" msgstr "" -#: common/models.py:1918 +#: common/models.py:1932 msgid "Secret" msgstr "" -#: common/models.py:1919 +#: common/models.py:1933 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2025 +#: common/models.py:2039 msgid "Message ID" msgstr "" -#: common/models.py:2026 +#: common/models.py:2040 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Host" msgstr "" -#: common/models.py:2035 +#: common/models.py:2049 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2042 +#: common/models.py:2056 msgid "Header" msgstr "" -#: common/models.py:2043 +#: common/models.py:2057 msgid "Header of this message" msgstr "" -#: common/models.py:2049 +#: common/models.py:2063 msgid "Body" msgstr "" -#: common/models.py:2050 +#: common/models.py:2064 msgid "Body of this message" msgstr "" -#: common/models.py:2059 +#: common/models.py:2073 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2064 +#: common/models.py:2078 msgid "Worked on" msgstr "" -#: common/models.py:2065 +#: common/models.py:2079 msgid "Was the work on this message finished?" msgstr "" @@ -2739,6 +2735,10 @@ msgstr "" msgid "Items have been received against a purchase order" msgstr "" +#: common/notifications.py:414 +msgid "Error raised by plugin" +msgstr "" + #: common/views.py:85 order/templates/order/purchase_order_detail.html:23 #: order/views.py:102 part/views.py:112 #: templates/patterns/wizard/upload.html:37 @@ -2825,7 +2825,7 @@ msgstr "" msgid "Link to external company information" msgstr "链接到外部公司信息" -#: company/models.py:135 part/models.py:815 +#: company/models.py:135 part/models.py:829 msgid "Image" msgstr "图片" @@ -2867,7 +2867,7 @@ msgstr "货币" msgid "Default currency used for this company" msgstr "该公司使用的默认货币" -#: company/models.py:248 company/models.py:482 stock/models.py:544 +#: company/models.py:248 company/models.py:482 stock/models.py:600 #: stock/serializers.py:85 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:568 msgid "Base Part" @@ -2928,7 +2928,7 @@ msgstr "参数名称" #: company/models.py:365 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:2041 templates/js/translated/company.js:581 +#: stock/models.py:2097 templates/js/translated/company.js:581 #: templates/js/translated/company.js:799 templates/js/translated/part.js:847 #: templates/js/translated/stock.js:1360 msgid "Value" @@ -2938,7 +2938,7 @@ msgstr "数值" msgid "Parameter value" msgstr "参数值" -#: company/models.py:372 part/models.py:888 part/models.py:2426 +#: company/models.py:372 part/models.py:902 part/models.py:2440 #: part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings.html:352 #: templates/js/translated/company.js:805 templates/js/translated/part.js:853 @@ -2994,22 +2994,22 @@ msgid "Supplier part description" msgstr "供应商商品描述" #: company/models.py:523 company/templates/company/supplier_part.html:181 -#: part/models.py:2679 part/templates/part/upload_bom.html:59 +#: part/models.py:2693 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_po_report.html:92 -#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:399 +#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:403 msgid "Note" msgstr "备注" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "base cost" msgstr "" -#: company/models.py:527 part/models.py:1774 +#: company/models.py:527 part/models.py:1788 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" #: company/models.py:529 company/templates/company/supplier_part.html:167 -#: stock/models.py:570 stock/templates/stock/item_base.html:243 +#: stock/models.py:626 stock/templates/stock/item_base.html:243 #: templates/js/translated/company.js:991 templates/js/translated/stock.js:1978 msgid "Packaging" msgstr "打包" @@ -3031,7 +3031,7 @@ msgstr "" msgid "Unit quantity supplied in a single pack" msgstr "" -#: company/models.py:539 part/models.py:1776 +#: company/models.py:539 part/models.py:1790 msgid "multiple" msgstr "" @@ -3117,8 +3117,8 @@ msgid "Download image from URL" msgstr "从 URL 下载图片" #: company/templates/company/company_base.html:86 order/models.py:646 -#: order/templates/order/sales_order_base.html:116 stock/models.py:589 -#: stock/models.py:590 stock/serializers.py:809 +#: order/templates/order/sales_order_base.html:116 stock/models.py:645 +#: stock/models.py:646 stock/serializers.py:813 #: stock/templates/stock/item_base.html:399 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:428 templates/js/translated/order.js:2813 @@ -3136,12 +3136,12 @@ msgid "Phone" msgstr "电话" #: company/templates/company/company_base.html:208 -#: part/templates/part/part_base.html:497 +#: part/templates/part/part_base.html:499 msgid "Upload Image" msgstr "上传图片" #: company/templates/company/company_base.html:223 -#: part/templates/part/part_base.html:552 +#: part/templates/part/part_base.html:554 msgid "Download Image" msgstr "下载图片" @@ -3341,7 +3341,7 @@ msgid "Assigned Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:553 +#: company/templates/company/supplier_part.html:24 stock/models.py:609 #: stock/templates/stock/item_base.html:236 #: templates/js/translated/company.js:945 templates/js/translated/order.js:1135 #: templates/js/translated/stock.js:1935 @@ -3809,7 +3809,7 @@ msgstr "" msgid "Number of items received" msgstr "" -#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:685 +#: order/models.py:1031 part/templates/part/prices.html:181 stock/models.py:741 #: stock/serializers.py:169 stock/templates/stock/item_base.html:189 #: templates/js/translated/stock.js:1966 msgid "Purchase Price" @@ -3856,8 +3856,8 @@ msgstr "" msgid "User who checked this shipment" msgstr "" -#: order/models.py:1234 order/models.py:1419 order/serializers.py:1224 -#: order/serializers.py:1348 templates/js/translated/model_renderers.js:314 +#: order/models.py:1234 order/models.py:1419 order/serializers.py:1228 +#: order/serializers.py:1356 templates/js/translated/model_renderers.js:314 msgid "Shipment" msgstr "" @@ -3909,7 +3909,7 @@ msgstr "" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1399 order/serializers.py:1086 +#: order/models.py:1399 order/serializers.py:1090 msgid "Quantity must be 1 for serialized stock item" msgstr "" @@ -3949,11 +3949,11 @@ msgstr "" msgid "Order cannot be cancelled" msgstr "无法取消订单" -#: order/serializers.py:209 order/serializers.py:1104 +#: order/serializers.py:209 order/serializers.py:1108 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:220 order/serializers.py:1115 +#: order/serializers.py:220 order/serializers.py:1119 msgid "Order has incomplete line items" msgstr "" @@ -3981,7 +3981,7 @@ msgstr "" msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:430 order/serializers.py:1192 +#: order/serializers.py:430 order/serializers.py:1196 msgid "Line Item" msgstr "" @@ -3989,7 +3989,7 @@ msgstr "" msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:446 order/serializers.py:553 +#: order/serializers.py:446 order/serializers.py:557 msgid "Select destination location for received items" msgstr "" @@ -4013,51 +4013,51 @@ msgstr "" msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:569 +#: order/serializers.py:573 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:586 +#: order/serializers.py:590 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:597 +#: order/serializers.py:601 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:903 +#: order/serializers.py:907 msgid "Sale price currency" msgstr "" -#: order/serializers.py:984 +#: order/serializers.py:988 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1047 order/serializers.py:1201 +#: order/serializers.py:1051 order/serializers.py:1205 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1069 +#: order/serializers.py:1073 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1214 +#: order/serializers.py:1218 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1236 order/serializers.py:1356 +#: order/serializers.py:1240 order/serializers.py:1364 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1239 order/serializers.py:1359 +#: order/serializers.py:1243 order/serializers.py:1367 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1289 +#: order/serializers.py:1297 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1299 +#: order/serializers.py:1307 msgid "The following serial numbers are already allocated" msgstr "" @@ -4070,11 +4070,11 @@ msgstr "" msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:88 +#: order/tasks.py:89 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:93 +#: order/tasks.py:94 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -4398,8 +4398,8 @@ msgstr "指定初始初始商品仓储地点" msgid "This field is required" msgstr "此字段为必填" -#: part/bom.py:127 part/models.py:98 part/models.py:824 -#: part/templates/part/category.html:114 part/templates/part/part_base.html:343 +#: part/bom.py:127 part/models.py:98 part/models.py:838 +#: part/templates/part/category.html:114 part/templates/part/part_base.html:345 msgid "Default Location" msgstr "默认仓储地点" @@ -4444,7 +4444,7 @@ msgstr "" msgid "Icon (optional)" msgstr "" -#: part/models.py:122 part/models.py:2509 part/templates/part/category.html:16 +#: part/models.py:122 part/models.py:2523 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" @@ -4475,56 +4475,48 @@ msgstr "" msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:628 -msgid "Next available serial numbers are" +#: part/models.py:601 +msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:632 -msgid "Next available serial number is" -msgstr "" - -#: part/models.py:637 -msgid "Most recent serial number is" -msgstr "" - -#: part/models.py:718 +#: part/models.py:732 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:745 part/models.py:2565 +#: part/models.py:759 part/models.py:2579 msgid "Part name" msgstr "商品名称" -#: part/models.py:752 +#: part/models.py:766 msgid "Is Template" msgstr "" -#: part/models.py:753 +#: part/models.py:767 msgid "Is this part a template part?" msgstr "" -#: part/models.py:763 +#: part/models.py:777 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:764 +#: part/models.py:778 msgid "Variant Of" msgstr "" -#: part/models.py:770 +#: part/models.py:784 msgid "Part description" msgstr "商品描述" -#: part/models.py:775 part/templates/part/category.html:92 +#: part/models.py:789 part/templates/part/category.html:92 #: part/templates/part/part_base.html:300 msgid "Keywords" msgstr "关键词" -#: part/models.py:776 +#: part/models.py:790 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:783 part/models.py:2258 part/models.py:2508 +#: part/models.py:797 part/models.py:2272 part/models.py:2522 #: part/templates/part/part_base.html:263 #: templates/InvenTree/settings/settings.html:232 #: templates/js/translated/notification.js:50 @@ -4532,367 +4524,367 @@ msgstr "提高搜索结果可见性的关键字" msgid "Category" msgstr "类别" -#: part/models.py:784 +#: part/models.py:798 msgid "Part category" msgstr "商品类别" -#: part/models.py:789 part/templates/part/part_base.html:272 +#: part/models.py:803 part/templates/part/part_base.html:272 #: templates/js/translated/part.js:737 templates/js/translated/part.js:1429 #: templates/js/translated/stock.js:1726 msgid "IPN" msgstr "" -#: part/models.py:790 +#: part/models.py:804 msgid "Internal Part Number" msgstr "内部商品编号" -#: part/models.py:796 +#: part/models.py:810 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:797 part/templates/part/part_base.html:279 +#: part/models.py:811 part/templates/part/part_base.html:279 #: report/models.py:171 templates/js/translated/part.js:741 msgid "Revision" msgstr "" -#: part/models.py:822 +#: part/models.py:836 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:867 part/templates/part/part_base.html:352 +#: part/models.py:881 part/templates/part/part_base.html:354 msgid "Default Supplier" msgstr "" -#: part/models.py:868 +#: part/models.py:882 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:875 +#: part/models.py:889 msgid "Default Expiry" msgstr "" -#: part/models.py:876 +#: part/models.py:890 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:881 part/templates/part/part_base.html:206 +#: part/models.py:895 part/templates/part/part_base.html:206 msgid "Minimum Stock" msgstr "最低库存" -#: part/models.py:882 +#: part/models.py:896 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:889 +#: part/models.py:903 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:895 +#: part/models.py:909 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:901 +#: part/models.py:915 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:907 +#: part/models.py:921 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:912 +#: part/models.py:926 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:917 +#: part/models.py:931 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:922 +#: part/models.py:936 msgid "Is this part active?" msgstr "" -#: part/models.py:927 +#: part/models.py:941 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:929 +#: part/models.py:943 msgid "Part notes" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "BOM checksum" msgstr "" -#: part/models.py:931 +#: part/models.py:945 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:934 +#: part/models.py:948 msgid "BOM checked by" msgstr "" -#: part/models.py:936 +#: part/models.py:950 msgid "BOM checked date" msgstr "" -#: part/models.py:940 +#: part/models.py:954 msgid "Creation User" msgstr "新建用户" -#: part/models.py:1776 +#: part/models.py:1790 msgid "Sell multiple" msgstr "" -#: part/models.py:2305 +#: part/models.py:2319 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2322 +#: part/models.py:2336 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2342 templates/js/translated/part.js:2066 +#: part/models.py:2356 templates/js/translated/part.js:2066 #: templates/js/translated/stock.js:1340 msgid "Test Name" msgstr "" -#: part/models.py:2343 +#: part/models.py:2357 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2348 +#: part/models.py:2362 msgid "Test Description" msgstr "" -#: part/models.py:2349 +#: part/models.py:2363 msgid "Enter description for this test" msgstr "" -#: part/models.py:2354 templates/js/translated/part.js:2075 +#: part/models.py:2368 templates/js/translated/part.js:2075 #: templates/js/translated/table_filters.js:310 msgid "Required" msgstr "" -#: part/models.py:2355 +#: part/models.py:2369 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2360 templates/js/translated/part.js:2083 +#: part/models.py:2374 templates/js/translated/part.js:2083 msgid "Requires Value" msgstr "" -#: part/models.py:2361 +#: part/models.py:2375 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2366 templates/js/translated/part.js:2090 +#: part/models.py:2380 templates/js/translated/part.js:2090 msgid "Requires Attachment" msgstr "" -#: part/models.py:2367 +#: part/models.py:2381 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2375 +#: part/models.py:2389 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2411 +#: part/models.py:2425 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2419 +#: part/models.py:2433 msgid "Parameter Name" msgstr "" -#: part/models.py:2426 +#: part/models.py:2440 msgid "Parameter Units" msgstr "" -#: part/models.py:2431 +#: part/models.py:2445 msgid "Parameter description" msgstr "" -#: part/models.py:2464 +#: part/models.py:2478 msgid "Parent Part" msgstr "" -#: part/models.py:2466 part/models.py:2514 part/models.py:2515 +#: part/models.py:2480 part/models.py:2528 part/models.py:2529 #: templates/InvenTree/settings/settings.html:227 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Data" msgstr "" -#: part/models.py:2468 +#: part/models.py:2482 msgid "Parameter Value" msgstr "" -#: part/models.py:2519 templates/InvenTree/settings/settings.html:236 +#: part/models.py:2533 templates/InvenTree/settings/settings.html:236 msgid "Default Value" msgstr "默认值" -#: part/models.py:2520 +#: part/models.py:2534 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2557 +#: part/models.py:2571 msgid "Part ID or part name" msgstr "" -#: part/models.py:2560 templates/js/translated/model_renderers.js:212 +#: part/models.py:2574 templates/js/translated/model_renderers.js:212 msgid "Part ID" msgstr "商品ID" -#: part/models.py:2561 +#: part/models.py:2575 msgid "Unique part ID value" msgstr "" -#: part/models.py:2564 +#: part/models.py:2578 msgid "Part Name" msgstr "" -#: part/models.py:2568 +#: part/models.py:2582 msgid "Part IPN" msgstr "" -#: part/models.py:2569 +#: part/models.py:2583 msgid "Part IPN value" msgstr "" -#: part/models.py:2572 +#: part/models.py:2586 msgid "Level" msgstr "" -#: part/models.py:2573 +#: part/models.py:2587 msgid "BOM level" msgstr "" -#: part/models.py:2642 +#: part/models.py:2656 msgid "Select parent part" msgstr "" -#: part/models.py:2650 +#: part/models.py:2664 msgid "Sub part" msgstr "" -#: part/models.py:2651 +#: part/models.py:2665 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2657 +#: part/models.py:2671 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2661 part/templates/part/upload_bom.html:58 +#: part/models.py:2675 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:924 templates/js/translated/bom.js:1024 #: templates/js/translated/table_filters.js:84 #: templates/js/translated/table_filters.js:108 msgid "Optional" msgstr "可选项" -#: part/models.py:2662 +#: part/models.py:2676 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2667 templates/js/translated/bom.js:920 +#: part/models.py:2681 templates/js/translated/bom.js:920 #: templates/js/translated/bom.js:1033 #: templates/js/translated/table_filters.js:88 msgid "Consumable" msgstr "" -#: part/models.py:2668 +#: part/models.py:2682 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:2672 part/templates/part/upload_bom.html:55 +#: part/models.py:2686 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:2673 +#: part/models.py:2687 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2676 +#: part/models.py:2690 msgid "BOM item reference" msgstr "" -#: part/models.py:2679 +#: part/models.py:2693 msgid "BOM item notes" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "Checksum" msgstr "" -#: part/models.py:2681 +#: part/models.py:2695 msgid "BOM line checksum" msgstr "" -#: part/models.py:2685 part/templates/part/upload_bom.html:57 +#: part/models.py:2699 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1050 #: templates/js/translated/table_filters.js:76 #: templates/js/translated/table_filters.js:104 msgid "Inherited" msgstr "继承项" -#: part/models.py:2686 +#: part/models.py:2700 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2691 part/templates/part/upload_bom.html:56 +#: part/models.py:2705 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1042 msgid "Allow Variants" msgstr "" -#: part/models.py:2692 +#: part/models.py:2706 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2778 stock/models.py:446 +#: part/models.py:2792 stock/models.py:502 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2787 part/models.py:2789 +#: part/models.py:2801 part/models.py:2803 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2894 +#: part/models.py:2908 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:2915 +#: part/models.py:2929 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:2928 +#: part/models.py:2942 msgid "Parent BOM item" msgstr "" -#: part/models.py:2936 +#: part/models.py:2950 msgid "Substitute part" msgstr "" -#: part/models.py:2951 +#: part/models.py:2965 msgid "Part 1" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Part 2" msgstr "" -#: part/models.py:2955 +#: part/models.py:2969 msgid "Select Related Part" msgstr "" -#: part/models.py:2973 +#: part/models.py:2987 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:2977 +#: part/models.py:2991 msgid "Duplicate relationship already exists" msgstr "" @@ -5413,7 +5405,7 @@ msgid "Inactive" msgstr "" #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:618 +#: part/templates/part/part_base.html:620 msgid "Show Part Details" msgstr "" @@ -5452,28 +5444,28 @@ msgstr "" msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:329 +#: part/templates/part/part_base.html:330 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:333 +#: part/templates/part/part_base.html:334 #: stock/templates/stock/item_base.html:331 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:429 +#: part/templates/part/part_base.html:431 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:475 part/templates/part/prices.html:149 +#: part/templates/part/part_base.html:477 part/templates/part/prices.html:149 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:518 +#: part/templates/part/part_base.html:520 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:612 +#: part/templates/part/part_base.html:614 msgid "Hide Part Details" msgstr "" @@ -5831,6 +5823,20 @@ msgstr "" msgid "No date found" msgstr "" +#: plugin/registry.py:431 +msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" +msgstr "" + +#: plugin/registry.py:433 +#, python-brace-format +msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgstr "" + +#: plugin/registry.py:435 +#, python-brace-format +msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgstr "" + #: plugin/samples/integration/sample.py:39 msgid "Enable PO" msgstr "" @@ -6005,7 +6011,7 @@ msgid "Stock Item Test Report" msgstr "" #: report/templates/report/inventree_test_report_base.html:79 -#: stock/models.py:594 stock/templates/stock/item_base.html:320 +#: stock/models.py:650 stock/templates/stock/item_base.html:320 #: templates/js/translated/build.js:472 templates/js/translated/build.js:624 #: templates/js/translated/build.js:1225 templates/js/translated/build.js:1724 #: templates/js/translated/model_renderers.js:118 @@ -6019,12 +6025,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:2029 +#: stock/models.py:2085 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:2035 +#: stock/models.py:2091 msgid "Result" msgstr "" @@ -6059,241 +6065,237 @@ msgstr "" msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:90 stock/models.py:690 +#: stock/models.py:90 stock/models.py:746 #: stock/templates/stock/item_base.html:250 msgid "Owner" msgstr "" -#: stock/models.py:91 stock/models.py:691 +#: stock/models.py:91 stock/models.py:747 msgid "Select Owner" msgstr "" -#: stock/models.py:420 -msgid "StockItem with this serial number already exists" -msgstr "" - -#: stock/models.py:452 stock/serializers.py:93 +#: stock/models.py:508 stock/serializers.py:93 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:469 +#: stock/models.py:525 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:479 stock/models.py:488 +#: stock/models.py:535 stock/models.py:544 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:480 +#: stock/models.py:536 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:502 +#: stock/models.py:558 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:508 +#: stock/models.py:564 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:522 +#: stock/models.py:578 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:536 +#: stock/models.py:592 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:546 +#: stock/models.py:602 msgid "Base part" msgstr "" -#: stock/models.py:554 +#: stock/models.py:610 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:561 stock/templates/stock/location.html:17 +#: stock/models.py:617 stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "仓储地点" -#: stock/models.py:564 +#: stock/models.py:620 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:571 +#: stock/models.py:627 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:577 stock/templates/stock/item_base.html:359 +#: stock/models.py:633 stock/templates/stock/item_base.html:359 msgid "Installed In" msgstr "" -#: stock/models.py:580 +#: stock/models.py:636 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:596 +#: stock/models.py:652 msgid "Serial number for this item" msgstr "" -#: stock/models.py:610 +#: stock/models.py:666 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:615 +#: stock/models.py:671 msgid "Stock Quantity" msgstr "" -#: stock/models.py:624 +#: stock/models.py:680 msgid "Source Build" msgstr "" -#: stock/models.py:626 +#: stock/models.py:682 msgid "Build for this stock item" msgstr "" -#: stock/models.py:637 +#: stock/models.py:693 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:640 +#: stock/models.py:696 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:646 +#: stock/models.py:702 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:652 stock/templates/stock/item_base.html:427 +#: stock/models.py:708 stock/templates/stock/item_base.html:427 #: templates/js/translated/stock.js:1885 msgid "Expiry Date" msgstr "" -#: stock/models.py:653 +#: stock/models.py:709 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete on deplete" msgstr "" -#: stock/models.py:666 +#: stock/models.py:722 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:678 stock/templates/stock/item.html:132 +#: stock/models.py:734 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:686 +#: stock/models.py:742 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:714 +#: stock/models.py:770 msgid "Converted to part" msgstr "" -#: stock/models.py:1188 +#: stock/models.py:1244 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1194 +#: stock/models.py:1250 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1200 +#: stock/models.py:1256 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1203 +#: stock/models.py:1259 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1206 +#: stock/models.py:1262 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1213 +#: stock/models.py:1269 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1283 +#: stock/models.py:1339 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1286 +#: stock/models.py:1342 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1289 +#: stock/models.py:1345 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1292 +#: stock/models.py:1348 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1295 +#: stock/models.py:1351 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1298 +#: stock/models.py:1354 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1305 stock/serializers.py:959 +#: stock/models.py:1361 stock/serializers.py:963 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1309 +#: stock/models.py:1365 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1313 +#: stock/models.py:1369 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1317 +#: stock/models.py:1373 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1542 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1947 +#: stock/models.py:2003 msgid "Entry notes" msgstr "" -#: stock/models.py:2005 +#: stock/models.py:2061 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2011 +#: stock/models.py:2067 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2030 +#: stock/models.py:2086 msgid "Test name" msgstr "" -#: stock/models.py:2036 +#: stock/models.py:2092 msgid "Test result" msgstr "" -#: stock/models.py:2042 +#: stock/models.py:2098 msgid "Test output value" msgstr "" -#: stock/models.py:2049 +#: stock/models.py:2105 msgid "Test result attachment" msgstr "" -#: stock/models.py:2055 +#: stock/models.py:2111 msgid "Test notes" msgstr "" @@ -6318,7 +6320,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "输入新项目的序列号" -#: stock/serializers.py:321 stock/serializers.py:916 stock/serializers.py:1149 +#: stock/serializers.py:321 stock/serializers.py:920 stock/serializers.py:1153 msgid "Destination stock location" msgstr "目标库存位置" @@ -6330,99 +6332,99 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:355 +#: stock/serializers.py:359 msgid "Serial numbers already exist" msgstr "序列号已存在" -#: stock/serializers.py:395 +#: stock/serializers.py:399 msgid "Select stock item to install" msgstr "" -#: stock/serializers.py:408 +#: stock/serializers.py:412 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:415 +#: stock/serializers.py:419 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:456 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:457 stock/serializers.py:538 +#: stock/serializers.py:461 stock/serializers.py:542 msgid "Add transaction note (optional)" msgstr "添加交易备注 (可选)" -#: stock/serializers.py:491 +#: stock/serializers.py:495 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:502 +#: stock/serializers.py:506 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:533 +#: stock/serializers.py:537 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:771 +#: stock/serializers.py:775 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:775 +#: stock/serializers.py:779 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:779 +#: stock/serializers.py:783 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:810 +#: stock/serializers.py:814 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:816 +#: stock/serializers.py:820 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:824 +#: stock/serializers.py:828 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:834 stock/serializers.py:1065 +#: stock/serializers.py:838 stock/serializers.py:1069 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:923 +#: stock/serializers.py:927 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:928 +#: stock/serializers.py:932 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:929 +#: stock/serializers.py:933 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:934 +#: stock/serializers.py:938 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:935 +#: stock/serializers.py:939 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:945 +#: stock/serializers.py:949 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1027 +#: stock/serializers.py:1031 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1055 +#: stock/serializers.py:1059 msgid "Stock transaction notes" msgstr "" @@ -8652,32 +8654,32 @@ msgstr "" msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1274 templates/modals.html:19 +#: templates/js/translated/forms.js:1269 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1707 +#: templates/js/translated/forms.js:1706 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1923 templates/search.html:29 +#: templates/js/translated/forms.js:1922 templates/search.html:29 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:2176 +#: templates/js/translated/forms.js:2175 msgid "Clear input" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "File Column" msgstr "" -#: templates/js/translated/forms.js:2642 +#: templates/js/translated/forms.js:2641 msgid "Field Name" msgstr "" -#: templates/js/translated/forms.js:2654 +#: templates/js/translated/forms.js:2653 msgid "Select Columns" msgstr ""