diff --git a/InvenTree/locale/bg/LC_MESSAGES/django.po b/InvenTree/locale/bg/LC_MESSAGES/django.po index 05a13e90ef..5a4a01ba67 100644 --- a/InvenTree/locale/bg/LC_MESSAGES/django.po +++ b/InvenTree/locale/bg/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "Не е намерена крайна точка на API" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Потребителя няма нужното разрешение, за да вижда този модел" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Не е зададена стойност" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Преобразуването на {original} в {unit} не беше успешно" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Зададено е недопустимо количество" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Зададено е недопустимо количество ({exc})" @@ -47,22 +47,22 @@ msgstr "Зададено е недопустимо количество ({exc})" msgid "Error details can be found in the admin panel" msgstr "Подробности за грешката могат да се намерят в администраторския панел" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Въведи дата" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Въведи дата" msgid "Notes" msgstr "Бележки" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Значението '{name}' не отговаря на шаблона" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Въведеното значение не отговаря на задължителния шаблон: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Въведете парола" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Въведи нова парола" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Потвърди паролата" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Потвърди нова парола" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Стара парола" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Е-поща отново" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Потвърждение на електронната поща" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Трябва ла въведете една и съща електронна поща." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Въведената основна електронна поща е невалидна." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Въведеният домейн на електронната поща не е утвърден." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Регистрацията е деактивирана." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Въведена е недопустима стойност" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Липсва сериен номер" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Повтарящ се сериен номер" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Невалиден диапазон от групи: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Не са открити серийни номера" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Премахнете HTML маркерите от тази стойност" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Грешка при съединението" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Сървърът отговари с невалиден статусен код" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Възникна изключение" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Сървърът отговори с невалидна стойност за дължината на съдържанието (Content-Length)" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Размерът на изображението е твърде голям" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Сваляното на изображение превиши максималния размер" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Отдалеченият сървър върна празен отговор" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Потребител" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "" msgid "Name" msgstr "" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "" msgid "Description" msgstr "" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "родител" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Хинди" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Унгарски" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Италиански" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Японски" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Корейски" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Нидерландски" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Норвежки" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Полски" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Португалски" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Португалски (Бразилия)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Руски" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Словенски" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Шведски" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Тайландски" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Турски" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Виетнамски" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Китайски (опростен)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Китайски (традиционен)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Изгубен" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Върнат" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Изпълнява се" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Изпратено" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "Да" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -854,23 +853,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -894,27 +893,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -922,14 +921,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1140,7 +1139,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1338,9 +1337,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Цялостна наличност" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,107 +7374,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7490,11 +7488,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7510,7 +7508,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7518,7 +7516,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7526,19 +7524,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7546,15 +7544,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7567,8 +7565,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7576,49 +7574,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7658,7 +7656,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7674,7 +7672,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7734,113 +7732,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7852,35 +7850,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7892,40 +7890,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7945,103 +7943,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8082,7 +8080,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8108,12 +8106,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8139,7 +8137,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8148,438 +8146,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Място в склада" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Места в склада" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8595,116 +8593,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8925,7 +8923,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9562,7 +9560,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12731,7 +12729,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13370,7 +13368,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13541,31 +13539,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13581,15 +13579,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13601,38 +13599,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po index ae40939cda..54c0d546e5 100644 --- a/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Czech\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API endpoint nebyl nalezen" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Uživatel nemá právo zobrazit tento model" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Není k dispozici žádná hodnota" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "Podrobnosti o chybě lze nalézt v panelu administrace" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Zadejte datum" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Zadejte datum" msgid "Notes" msgstr "Poznámky" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Hodnota '{name}' neodpovídá formátu vzoru" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Poskytnutá hodnota neodpovídá požadovanému vzoru: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Zadejte heslo" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Zadejte nové heslo" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Potvrďte heslo" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Potvrďte nové heslo" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Původní heslo" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (znovu)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Potvrzení emailové adresy" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Pokaždé musíte zadat stejný email." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Zadaná primární e-mailová adresa je neplatná." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Zadaná e-mailová doména není povolena." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Vyplněno neplatné množství" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Nevyplněné výrobní číslo" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Duplicitní výrobní číslo" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Nenalezena žádná výrobní čísla" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Odstranit HTML tagy z této hodnoty" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Chyba spojení" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Server odpověděl s neplatným stavovým kódem" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Došlo k výjimce" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Server odpověděl s neplatnou hodnotou Content-Length" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Velikost obrázku je příliš velká" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Stahování obrázku překročilo maximální velikost" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Vzdálený server vrátil prázdnou odpověď" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Zadaná URL adresa není platný soubor obrázku" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Metadata musí být objekt python dict" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Metadata pluginu" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "Pole metadat JSON pro použití externími pluginy" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Nesprávně naformátovaný vzor" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Neznámý formát klíče" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Chybí požadovaný klíč" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Referenční pole nemůže být prázdné" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Referenční číslo musí odpovídat požadovanému vzoru" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Referenční číslo je příliš velké" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Chybějící soubor" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Chybějící externí odkaz" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Příloha" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Vyberte soubor k přiložení" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Vyberte soubor k přiložení" msgid "Link" msgstr "Odkaz" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Odkaz na externí URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Komentář" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Komentář k souboru" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Uživatel" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "datum přidání" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Název souboru nesmí být prázdný" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Neplatný adresář přílohy" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Název souboru obsahuje nepovolený znak '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Chybějící přípona souboru" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Příloha s tímto názvem již existuje" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Chyba při přejmenování souboru" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Neplatný výběr" msgid "Name" msgstr "Název" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Název" msgid "Description" msgstr "Popis" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Popis (volitelně)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "nadřazený" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Cesta" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Poznámky (volitelné)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Data čárového kódu" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Data čárového kódu třetí strany" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Hash čárového kódu" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Jedinečný hash dat čárového kódu" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Nalezen existující čárový kód" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Chyba serveru" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Server zaznamenal chybu." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Musí být platné číslo" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Měna" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Vyberte měnu z dostupných možností" @@ -463,16 +462,16 @@ msgstr "Vyberte měnu z dostupných možností" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Název souboru" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Neplatná hodnota" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Datový soubor" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Vyberte datový soubor k nahrání" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Nepodporovaný typ souboru" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Soubor je příliš velký" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "V souboru nebyly nalezeny žádné sloupce" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "V souboru nebyly nalezeny žádné řádky s daty" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Nebyly zadány žádné řádky s daty" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Nebyly zadány žádné sloupce s daty" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Chybí povinný sloupec: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicitní sloupec: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL souboru vzdáleného obrázku" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Stahování obrázků ze vzdálené URL není povoleno" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Čeština" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Dánština" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Němčina" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Řečtina" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Angličtina" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Španělština" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Španělština (Mexiko)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Perština" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Finština" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Francouzština" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebrejština" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Maďarština" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italština" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japonština" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Korejština" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Nizozemština" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norština" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polština" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugalština" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugalština (Brazilská)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Ruština" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Slovinština" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Švédština" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Thajština" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turečtina" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamština" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Kontrola procesů na pozadí se nezdařila" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Email backend není nakonfigurován" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Kontroly zdraví systému InvenTree selhaly" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Nevyřízeno" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Umístěno" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Hotovo" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Zrušeno" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Ztraceno" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Vráceno" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Zpracovává se" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Odesláno" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Vyžaduje pozornost" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Poškozeno" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Zničeno" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Odmítnuto" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "V karanténě" @@ -854,23 +853,23 @@ msgstr "Vráceno od zákazníka" msgid "Production" msgstr "Výroba" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Vrátit zpět" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Oprava" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Náhrada" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Vrácení peněz" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Odmítnout" @@ -882,11 +881,11 @@ msgstr "Neplatná fyzikální jednotka" msgid "Not a valid currency code" msgstr "Neplatný kód měny" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Přidaná hodnota nesmí být záporná" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Nesmí přesáhnout 100%" @@ -894,27 +893,27 @@ msgstr "Nesmí přesáhnout 100%" msgid "Invalid value for overage" msgstr "Neplatná hodnota překročení" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Upravit informace o uživateli" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Nastavit heslo" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Hesla se musí shodovat" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Zadáno špatné heslo" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Informace o systému" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "O InvenTree" @@ -922,14 +921,14 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Sestavení musí být zrušeno před odstraněním" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "Vytvořit objednávku" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Vytvořené objednávky" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Referenční číslo objednávky" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "Stav sestavení" msgid "Build status code" msgstr "Stavový kód sestavení" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1140,7 +1139,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "Cílové datum dokončení" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cílové datum dokončení sestavení. Sestavení bude po tomto datu v prodlení." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Datum dokončení" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Uživatel, který vydal tento příkaz k sestavení" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "Uživatel nebo skupina odpovědná za tento příkaz k sestavení" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "Priorita sestavení" msgid "Priority of this build order" msgstr "Priorita tohoto příkazu k sestavení" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "Výstup sestavení neodpovídá příkazu sestavení" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Množství musí být vyšší než nula" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "Položka sestavení musí specifikovat výstup sestavení, protože hlav msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Skladová položka je nadměrně zabrána" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Zabrané množství musí být větší než nula" @@ -1338,9 +1337,9 @@ msgstr "Množství musí být 1 pro zřetězený sklad" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Jméno společnosti" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Výchozí měna" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Stáhnout z URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Možné zakoupit" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Díly jsou zakoupitelné ve výchozím nastavení" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Prodejné" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Díly jsou prodejné ve výchozím nastavení" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Sledovatelné" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Díly jsou sledovatelné ve výchozím nastavení" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Nehmotné (virtuální)" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Díly jsou nehmotné (virtuální) ve výchozím nastavení" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Zobrazit Import v zobrazeních" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Zobrazit související díly" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Zobrazit související díly pro díl" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Počáteční údaje zásob" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Povolit vytvoření počátečního skladu při přidání nové části" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Počáteční údaje dodavatele" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Povolit vytvoření počátečních dat dodavatele při přidávání nového dílu" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Formát zobrazení jména dílu" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Formát pro zobrazení názvu dílu" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Výchozí ikona kategorie dílu" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Výchozí ikona kategorie dílu (prázdné znamená bez ikony)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "Minimální počet desetinných míst u cen" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimální počet desetinných míst k zobrazení u cenových údajů" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "Maximální počet desetinných míst u cen" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximální počet desetinných míst k zobrazení u cenových údajů" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Použít ceny dodavatele" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Přepsání historie nákupu" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Velikost stránky" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Výchozí velikost stránky pro PDF reporty" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Povolit testovací reporty" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Povolit generování zkušebních reportů" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Připojit testovací reporty" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Při tisku testovacího reportu, připojte kopii reportu k přidružené skladové položce" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "Sériová čísla pro skladové položky musí být globálně unikátní" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Automaticky vyplnit sériová čísla" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Automaticky vyplnit sériová čísla ve formulářích" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Odstranit vyčerpané zásoby" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Určuje výchozí chování, když je vyčerpána skladová položka" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Formát data" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Cena" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "Id" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "Obrazek" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Webová stránka" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Webové stránky společnosti" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Telefonní číslo" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Kontaktní telefonní číslo" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Kontaktní e-mailová adresa" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Kontakt" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Kontaktní místo" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "je zákazník" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Společnost" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Základní díl" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Zvolte díl" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "Zvolte díl" msgid "Manufacturer" msgstr "Výrobce" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Vyberte výrobce" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "Vyberte výrobce" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Číslo dílu výrobce" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "Popis dílu výrobce" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Výrobce dílu" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Název parametru" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Hodnota" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Hodnota parametru" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Jednotky" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "Stáhnout obrázek z URL" msgid "Delete image" msgstr "Smazat obrázek" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "Zákazník" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "Dodavatelský sklad" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Zakoupené objednávky" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,115 +7374,115 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Činnost nebyla specifikována" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Nebyla nalezena odpovídající činnost" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Pro data čárového kódu nebyla nalezena shoda" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Pro data čárového kódu byla nalezena shoda" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "No matching action found" msgid "Multiple matching line items found" msgstr "Nebyla nalezena odpovídající činnost" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching action found" msgid "No matching line item found" msgstr "Nebyla nalezena odpovídající činnost" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock item is over-allocated" msgid "Stock item allocated to sales order" msgstr "Skladová položka je nadměrně zabrána" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "Edit company information" msgid "Not enough information" msgstr "Upravit údaje o společnosti" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7498,11 +7496,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7518,7 +7516,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7526,7 +7524,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7534,19 +7532,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7554,15 +7552,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7575,8 +7573,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7584,49 +7582,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7666,7 +7664,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7682,7 +7680,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7742,113 +7740,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7860,35 +7858,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7900,40 +7898,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7953,103 +7951,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8090,7 +8088,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8116,12 +8114,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8147,7 +8145,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8156,438 +8154,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8603,116 +8601,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8933,7 +8931,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9570,7 +9568,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Odstranit" @@ -12739,7 +12737,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13378,7 +13376,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13549,31 +13547,31 @@ msgstr "Ano" msgid "No" msgstr "Ne" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Uživatelé" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Osobní údaje" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Oprávnění" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13589,15 +13587,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13609,38 +13607,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Nastavení oprávnění" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Skupina" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Zobrazit" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Oprávnění k zobrazení položek" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Oprávnění přidat položky" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Změnit" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Oprávnění k úpravě položek" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Oprávnění k odstranění položek" diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po index 3c7504d1d6..a30820261f 100644 --- a/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Danish\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API endpoint ikke fundet" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "Fejloplysninger kan findes i admin panelet" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Angiv dato" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Angiv dato" msgid "Notes" msgstr "Bemærkninger" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Værdi '{name}' vises ikke i mønsterformat" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Den angivne værdi matcher ikke det påkrævede mønster: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Indtast adgangskode" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Indtast ny adgangskode" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Bekræft adgangskode" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Bekræft ny adgangskode" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Gammel adgangskode" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "E-mail (igen)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Bekræftelse af e-mailadresse" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Du skal indtaste den samme e-mail hver gang." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Den indtastede email adresse er ikke gyldig." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Det angivne e-mail domæne er ikke godkendt." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Ugyldigt antal angivet" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Serienummer streng er tom" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Duplikeret serienummer" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Ingen serienumre fundet" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tags fra denne værdi" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Forbindelsesfejl" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Serveren svarede med ugyldig statuskode" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Der opstod en fejl" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarede med ugyldig Content-Length værdi" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Billedstørrelsen er for stor" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Billeddownload overskred maksimumstørrelsen" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Fjernserver returnerede tomt svar" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Angivet URL er ikke en gyldig billedfil" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Forkert formateret mønster" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Ukendt formatnøgle angivet" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøgle" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Referencefelt må ikke være tomt" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Reference skal matche det påkrævede mønster" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Referencenummer er for stort" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Manglende fil" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Manglende eksternt link" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Vedhæftning" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Vælg fil, der skal vedhæftes" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Vælg fil, der skal vedhæftes" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Link til ekstern URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Kommentar" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Fil kommentar" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Bruger" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "dato for upload" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Filnavn må ikke være tomt" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Ugyldig vedhæftningsmappe" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Filnavn indeholder ugyldigt tegn '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Filnavn mangler filtype" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Vedhæftning med dette filnavn findes allerede" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Fejl ved omdøbning af fil" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Ugyldigt valg" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Ugyldigt valg" msgid "Name" msgstr "Navn" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Navn" msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Beskrivelse (valgfri)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "overordnet" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Stregkode Data" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Tredjeparts stregkode data" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Stregkode Hash" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Unik hash af stregkode data" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Eksisterende stregkode fundet" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Serverfejl" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "En fejl blev logget af serveren." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Skal være et gyldigt tal" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Filnavn" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Ugyldig værdi" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Vælg datafilen til upload" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Filtype ikke understøttet" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Filen er for stor" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Ingen kolonner fundet i fil" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Ingen datarækker fundet i fil" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Ingen data-rækker angivet" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Ingen data-kolonner angivet" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Mangler påkrævet kolonne: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikeret kolonne: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL til ekstern billedfil" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Download af billeder fra ekstern URL er ikke aktiveret" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Tjekkisk" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Dansk" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Tysk" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Græsk" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Engelsk" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Spansk" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Spansk (Mexikansk)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Persisk" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Fransk" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Ungarsk" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Hollandsk" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugisisk" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasilien)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Slovensk" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Kontrol af baggrundstjeneste mislykkedes" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "E-mail backend ej konfigureret" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Helbredstjek af InvenTree system mislykkedes" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Afventende" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Placeret" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Fuldført" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Annulleret" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Mistet" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Returneret" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Afsendt" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Opmærksomhed påkrævet" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Beskadiget" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Destrueret" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Afvist" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "I karantæne" @@ -854,23 +853,23 @@ msgstr "Returneret fra kunde" msgid "Production" msgstr "Produktion" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "Ikke en gyldig valutakode" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Overskud må ikke være negativ" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Overskuddet må ikke overstige 100%" @@ -894,27 +893,27 @@ msgstr "Overskuddet må ikke overstige 100%" msgid "Invalid value for overage" msgstr "Ugyldig værdi for overskud" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Rediger brugerinformation" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Vælg adgangskode" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "De indtastede adgangskoder skal være ens" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Forkert adgangskode indtastet" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Systemoplysninger" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Om InvenTree" @@ -922,14 +921,14 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Produktion skal anulleres, før den kan slettes" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "Produktionsordre" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Produktionsordrer" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Produktionsordre reference" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Produktionsordre som er tildelt denne produktion" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "Produktionsordre som er tildelt denne produktion" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "Produktions Status" msgid "Build status code" msgstr "Produktions statuskode" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Batch Kode" @@ -1140,7 +1139,7 @@ msgstr "Batch Kode" msgid "Batch code for this build output" msgstr "Batch kode til dette produktions output" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "Projekteret afslutningsdato" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Dato for afslutning" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Bruger som udstedte denne byggeordre" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "Bruger eller gruppe ansvarlig for denne byggeordre" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "Bygge Prioritet" msgid "Priority of this build order" msgstr "Prioritet af denne byggeordre" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1338,9 +1337,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,111 +7374,111 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock item created" msgid "Stock item allocated to sales order" msgstr "Lager-element oprettet" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "Edit User Information" msgid "Not enough information" msgstr "Rediger brugerinformation" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7494,11 +7492,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7514,7 +7512,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7522,7 +7520,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7530,19 +7528,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7550,15 +7548,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7571,8 +7569,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7580,49 +7578,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7662,7 +7660,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7678,7 +7676,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7738,113 +7736,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7856,35 +7854,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7896,40 +7894,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7949,103 +7947,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8086,7 +8084,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8112,12 +8110,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8143,7 +8141,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8152,438 +8150,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8599,116 +8597,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8929,7 +8927,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9566,7 +9564,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12735,7 +12733,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13374,7 +13372,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13545,31 +13543,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13585,15 +13583,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13605,38 +13603,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 3e2182e21b..616dd63bb6 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-21 05:01+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-30 08:52\n" "Last-Translator: \n" "Language-Team: German\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API-Endpunkt nicht gefunden" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Benutzer hat keine Berechtigung, dieses Modell anzuzeigen" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Kein Wert angegeben" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Konnte {original} nicht in {unit} umwandeln" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Ungültige Menge" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Ungültige Menge ({exc})" @@ -47,22 +47,22 @@ msgstr "Ungültige Menge ({exc})" msgid "Error details can be found in the admin panel" msgstr "Fehlerdetails finden Sie im Admin-Panel" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Datum eingeben" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Datum eingeben" msgid "Notes" msgstr "Notizen" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Wert '{name}' hält das Musterformat nicht ein" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Angegebener Wert entspricht nicht dem benötigten Muster: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Passwort eingeben" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Neues Passwort eingeben" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Passwort wiederholen" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Neues Passwort bestätigen" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Altes Passwort" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "E-Mail (nochmal)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Bestätigung der E-Mail Adresse" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "E-Mail Adressen müssen übereinstimmen." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Die angegebene primäre E-Mail-Adresse ist ungültig." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Registrierung ist deaktiviert." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Keine Seriennummer angegeben" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Duplizierter Seriennummer" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Ungültiger Gruppenbereich: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Gruppenbereich {group} überschreitet die zulässige Menge ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Ungültige Gruppensequenz: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Keine Seriennummern gefunden" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Anzahl der eindeutigen Seriennummern ({len(serials)}) muss mit der Menge übereinstimmen ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Entferne HTML-Tags von diesem Wert" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Verbindungsfehler" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Server antwortete mit ungültigem Statuscode" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Ausnahme aufgetreten" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Server antwortete mit ungültigem Wert für die Inhaltslänge" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Bild ist zu groß" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Bilddownload überschreitet maximale Größe" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Remote-Server gab leere Antwort zurück" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] In App einloggen" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Email" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Metadaten müssen ein Python-Dict Objekt sein" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Plugin Metadaten" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Falsch formatiertes Muster" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Unbekannter Formatschlüssel angegeben" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Erforderlicher Formatschlüssel fehlt" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Referenz-Feld darf nicht leer sein" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Referenz muss erforderlichem Muster entsprechen" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Referenznummer ist zu groß" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Fehlende Datei" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Fehlender externer Link" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Anhang" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Datei zum Anhängen auswählen" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Link zu einer externen URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Kommentar" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Benutzer" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "Hochladedatum" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Dateiname darf nicht leer sein" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Ungültiges Verzeichnis für Anhang" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Dateiname enthält ungültiges Zeichen '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Dateiendung fehlt" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Anhang mit diesem Dateinamen bereits vorhanden" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Fehler beim Umbenennen" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Ungültige Auswahl" msgid "Name" msgstr "Name" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Name" msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Beschreibung (optional)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "Eltern" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Pfad" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Markdown Notizen (optional)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Barcode-Daten" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Drittanbieter-Barcode-Daten" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Barcode-Hash" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Eindeutiger Hash der Barcode-Daten" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Bestehender Barcode gefunden" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Serverfehler" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Währung" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Währung aus verfügbaren Optionen auswählen" @@ -463,285 +462,289 @@ msgstr "Währung aus verfügbaren Optionen auswählen" msgid "You do not have permission to change this user role." msgstr "Sie haben keine Berechtigung, diese Benutzerrolle zu ändern." -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "Nur Superuser können neue Benutzer erstellen" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "Willkommen bei {current_site.name}" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format -msgid "Your account has been created.\n\n" +msgid "" +"Your account has been created.\n" +"\n" "Please use the password reset function to get access (at https://{domain})." -msgstr "Ihr Konto wurde erstellt.\n\n" +msgstr "" +"Ihr Konto wurde erstellt.\n" +"\n" "Bitte verwenden Sie die Passwort-Zurücksetzen-Funktion, um Zugriff zu erhalten (https://{domain})." -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Dateiname" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Ungültiger Wert" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Datendatei" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Neue Datei zum Hochladen auswählen" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Nicht unterstütztes Dateiformat" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Datei ist zu groß" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Keine Spalten in der Datei gefunden" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Keine Datensätze in der Datei gefunden" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Keine Zeilen ausgewählt" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Keine Spalten angegeben" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Erforderliche Spalte '{name}' fehlt" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Doppelte Spalte: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL der Remote-Bilddatei" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "Bulgarisch" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Tschechisch" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Dänisch" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Griechisch" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Spanisch (Mexikanisch)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Persisch" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Beenden" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Hindi" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Ungarisch" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italienisch" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugiesisch" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugiesisch (Brasilien)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Slowenisch" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Chinesisch (Vereinfacht)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Chinesisch (Traditionell)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Hintergrund-Prozess-Kontrolle fehlgeschlagen" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "E-Mail-Backend nicht konfiguriert" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InvenTree Status-Überprüfung fehlgeschlagen" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Ausstehend" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Platziert" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Fertig" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Storniert" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Verloren" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Zurückgegeben" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "In Bearbeitung" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Versendet" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "erfordert Eingriff" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Beschädigt" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Zerstört" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Zurückgewiesen" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "In Quarantäne" @@ -853,23 +856,23 @@ msgstr "Rücksendung vom Kunden" msgid "Production" msgstr "in Arbeit" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Zurück" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Reparatur" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Ersetzen" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Rückerstattung" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Ablehnen" @@ -881,11 +884,11 @@ msgstr "Ungültige physikalische Einheit" msgid "Not a valid currency code" msgstr "Kein gültiger Währungscode" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Überschuss-Wert darf nicht negativ sein" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Überschuss darf 100% nicht überschreiten" @@ -893,27 +896,27 @@ msgstr "Überschuss darf 100% nicht überschreiten" msgid "Invalid value for overage" msgstr "Ungültiger Wert für Ausschuss" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Benutzerinformationen bearbeiten" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Passwort setzen" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Passwörter stimmen nicht überein" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Falsches Passwort angegeben" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Systeminformationen" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Über InvenTree" @@ -921,14 +924,14 @@ msgstr "Über InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Verbrauchsmaterial" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -942,14 +945,14 @@ msgstr "Optional" msgid "Tracked" msgstr "Nachverfolgt" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Zugeordnet" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -979,7 +982,7 @@ msgstr "Bauauftrag" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Bauaufträge" @@ -995,9 +998,9 @@ msgstr "Teil in Bauauftrag kann nicht geändert werden" msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1025,13 +1028,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1042,7 +1045,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1129,8 +1132,8 @@ msgstr "Bauauftrags-Status" msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Losnummer" @@ -1139,7 +1142,7 @@ msgstr "Losnummer" msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1154,7 +1157,7 @@ msgstr "geplantes Fertigstellungsdatum" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Zieldatum für Bauauftrag-Fertigstellung." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Fertigstellungsdatum" @@ -1172,10 +1175,10 @@ msgid "User who issued this build order" msgstr "Nutzer der diesen Bauauftrag erstellt hat" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1196,7 +1199,7 @@ msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1210,8 +1213,8 @@ msgstr "Bauauftrags-Priorität" msgid "Priority of this build order" msgstr "Priorität dieses Bauauftrags" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1247,9 +1250,9 @@ msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -1263,10 +1266,10 @@ msgstr "Objekt bauen" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1276,7 +1279,7 @@ msgstr "Objekt bauen" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1321,11 +1324,11 @@ msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" @@ -1337,9 +1340,9 @@ msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" msgid "Selected stock item does not match BOM line" msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1403,8 +1406,8 @@ msgstr "Ganzzahl für verfolgbare Teile erforderlich" 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:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Seriennummer" @@ -1421,7 +1424,7 @@ msgstr "Seriennummern automatisch zuweisen" msgid "Automatically allocate required items with matching serial numbers" msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig" @@ -1429,10 +1432,10 @@ msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig" msgid "A list of build outputs must be provided" msgstr "Eine Liste von Endprodukten muss angegeben werden" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1470,9 +1473,9 @@ msgid "Location for completed build outputs" msgstr "Lagerort für fertige Endprodukte" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1544,7 +1547,7 @@ msgstr "Akzeptieren, dass Lagerartikel diesem Bauauftrag nicht vollständig zuge msgid "Required stock has not been fully allocated" msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Unvollständig Zuweisung akzeptieren" @@ -1580,11 +1583,11 @@ msgstr "Bauauftragspositionsartikel" 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:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "Teil muss auf Lager sein" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Verfügbare Menge ({q}) überschritten" @@ -1597,7 +1600,7 @@ msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein" 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:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Zuweisungen müssen angegeben werden" @@ -1762,8 +1765,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1800,8 +1803,8 @@ msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1851,7 +1854,7 @@ msgstr "Ausgangs-Lager" msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Ziel-Lager" @@ -1864,7 +1867,7 @@ msgstr "Ziel-Lagerort nicht angegeben" msgid "Allocated Parts" msgstr "Zugewiesene Teile" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2020,19 +2023,19 @@ msgstr "Fehler beim Lesen der Datei (falsche Größe)" msgid "Error reading file (data could be corrupted)" msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Datei" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Datei zum Hochladen auswählen" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} Datei" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "{name} Datei zum Hochladen auswählen" @@ -2045,1041 +2048,1041 @@ msgstr "Aktualisiert" msgid "Timestamp of last update" msgstr "Zeitstempel der letzten Aktualisierung" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Eindeutiger Projektcode" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Projektbeschreibung" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "Benutzer oder Gruppe verantwortlich für dieses Projekt" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "Wert ist keine gültige Option" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Keine Gruppe" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Eine leere Domain ist nicht erlaubt." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ungültiger Domainname: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "Kein Plugin" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Neustart erforderlich" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "Ausstehende Migrationen" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "Anzahl der ausstehenden Datenbankmigrationen" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "Name der Serverinstanz" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "Kurze Beschreibung der Instanz" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Name der Instanz verwenden" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "Den Namen der Instanz in der Titelleiste verwenden" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "Anzeige von `Über` einschränken" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "Zeige das `Über` Fenster nur Administratoren" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Firmenname" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "interner Firmenname" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "Basis-URL für dieses Instanz" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Standardwährung" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "Wählen Sie die Basiswährung für Preisberechnungen aus" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "Währungsaktualisierungsintervall" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivieren setzen)" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "Tage" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "Währungs-Aktualisierungs-Plugin" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "Zu verwendendes Währungs-Aktualisierungs-Plugin" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Von URL herunterladen" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Download-Größenlimit" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Maximal zulässige Größe für heruntergeladene Bilder" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "Benutzer-Agent zum Herunterladen von Daten" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Überschreiben des Benutzer-Agenten, der verwendet wird, um Bilder und Dateien von externer Servern herunterzuladen (leer für die Standardeinstellung)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Bestätigung verpflichtend" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Eine ausdrückliche Benutzerbestätigung für bestimmte Aktionen erfordern." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Baumtiefe" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standard Ebene für Baumansicht. Tiefere Ebenen können bei Bedarf nachgeladen werden." -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Prüfungsintervall aktualisieren" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "Wie oft soll nach Updates gesucht werden? (auf 0 setzen zum Deaktivieren)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Automatische Sicherung" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Automatische Sicherung der Datenbank- und Mediendateien aktivieren" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Intervall für automatische Sicherung" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Anzahl der Tage zwischen automatischen Sicherungen" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "Aufgabenlöschinterval" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "Ergebnisse der Hintergrundaufgabe werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "Löschintervall für Fehlerprotokolle" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "Fehlerprotokolle werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "Löschintervall für Benachrichtigungen" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Benutzerbenachrichtigungen werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "Barcode-Scanner Unterstützung im Webinterface aktivieren" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Barcode-Eingabeverzögerung" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Verzögerungszeit bei Barcode-Eingabe" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Barcode Webcam-Unterstützung" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode-Scannen über Webcam im Browser erlauben" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "Artikelrevisionen" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "Revisions-Feld für Artikel aktivieren" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:1324 +#: common/models.py:1370 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:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:1331 +#: common/models.py:1376 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:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Vorlage" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Komponente" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Nachverfolgbar" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Import in Ansichten anzeigen" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "Importassistent in einigen Teil-Ansichten anzeigen" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Verwandte Teile anzeigen" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Verwandte Teile eines Teils anzeigen" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Initialer Lagerbestand" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Erstellen von Lagerbestand beim Hinzufügen eines neuen Teils erlauben" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Initiale Lieferantendaten" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Erstellen von Lieferantendaten beim Hinzufügen eines neuen Teils erlauben" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Anzeigeformat für Teilenamen" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Format für den Namen eines Teiles" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Standardsymbol der Teilkategorie" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Standardsymbol der Teilkategorie (leer bedeutet kein Symbol)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "Parameter Einheiten durchsetzen" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "Wenn Einheiten angegeben werden, müssen die Parameterwerte mit den angegebenen Einheiten übereinstimmen" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "Dezimalstellen für minimalen Preis" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Mindestanzahl der Dezimalstellen bei der Darstellung der Preisdaten" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "Dezimalstellen für maximalen Preis" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximale Anzahl der Dezimalstellen bei der Darstellung der Preisdaten" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Zulieferer-Preise verwenden" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Lieferanten-Staffelpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Kaufverlauf überschreiben" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historische Bestellungspreise überschreiben die Lieferanten-Staffelpreise" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "Lagerartikel-Preis verwenden" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Preise aus manuell eingegebenen Lagerdaten für Preisberechnungen verwenden" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "Lagerartikelpreis Alter" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Lagerartikel, die älter als diese Anzahl an Tagen sind, von der Preisberechnung ausschließen" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "Variantenpreise verwenden" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "Variantenpreise in die Gesamt-Preisberechnungen einbeziehen" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "Nur aktive Varianten" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "Nur aktive Variantenteile zur Berechnung der Variantenbepreisung verwenden" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "Intervall für Neuberechnung von Preisen" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "Anzahl der Tage bis die Teile-Preisberechnungen automatisch aktualisiert werden" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Interne Preise" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "Interne Preise für Teile aktivieren" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Interne Preisüberschreibung" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "Falls verfügbar, überschreiben interne Preise Preispannenberechnungen" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Labeldruck aktivieren" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Labeldruck über die Website aktivieren" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "Label Bild DPI" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI-Auflösung bei der Erstellung von Bilddateien für Etikettendruck-Plugins" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Berichte aktivieren" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Berichterstellung aktivieren" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Testberichte aktivieren" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Testberichte anhängen" -#: common/models.py:1581 +#: common/models.py:1601 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:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "Global einzigartige Seriennummern" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "Seriennummern für Lagerartikel müssen global eindeutig sein" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Seriennummern automatisch ausfüllen" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Seriennummern in Formularen automatisch ausfüllen" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Erschöpften Lagerartikel löschen" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Legt das Standardverhalten fest, wenn ein Lagerartikel erschöpft ist" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "Losnummer Vorlage" -#: common/models.py:1609 +#: common/models.py:1629 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:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:1629 +#: common/models.py:1648 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:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "Standardsymbol für Lagerort" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "Standardsymbol für Lagerstandort (leer bedeutet kein Symbol)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "Zeige installierte Lagerartikel" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "Anzeige der installierten Lagerartikel in Bestandstabellen" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "Bauauftragsreferenz-Muster" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bauaufträge" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "Rücksendungen aktivieren" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "Referenz Muster für Rücksendungen" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Rücksendungen" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "Abgeschlossene Rücksendungen bearbeiten" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "Auftragsreferenz-Muster" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Aufträge" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "Auftrag Standardsendung" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "Erstelle eine Standardsendung für Aufträge" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "Abgeschlossene Verkaufsaufträge bearbeiten" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bearbeitung von Verkaufsaufträgen nach Versand oder Abschluss erlauben" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "Bestellungsreferenz-Muster" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bestellungen" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "Abgeschlossene Einkaufsaufträge bearbeiten" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bearbeitung von Einkaufsaufträgen nach Versand oder Abschluss erlauben" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Passwort vergessen aktivieren" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Registrierung erlauben" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "SSO aktivieren" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "SSO auf den Anmeldeseiten aktivieren" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "SSO Selbstregistrierung aktivieren" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Selbstregistrierung über SSO für Benutzer auf den Anmeldeseiten aktivieren" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Email-Adresse erforderlich" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "SSO-Benutzer automatisch ausfüllen" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "E-Mail zweimal" -#: common/models.py:1770 +#: common/models.py:1788 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:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Passwort zweimal" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Erlaubte Domains" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Gruppe bei Registrierung" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "MFA erzwingen" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Plugins beim Start prüfen" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "URL-Integration aktivieren" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "Plugins zum Hinzufügen von URLs aktivieren" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "Navigations-Integration aktivieren" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "Plugins zur Integration in die Navigation aktivieren" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "App-Integration aktivieren" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "Plugins zum Hinzufügen von Apps aktivieren" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "Terminplan-Integration aktivieren" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "Geplante Aufgaben aktivieren" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "Ereignis-Integration aktivieren" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "Projektcodes aktivieren" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "Aktiviere Projektcodes für die Verfolgung von Projekten" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "Inventurfunktionen" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Inventur-Funktionen zur Aufzeichnung von Lagerbeständen und zur Berechnung des Lagerwerts aktivieren" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "Externe Standorte ausschließen" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Lagerartikeln in externen Standorten in der Berechnungen zur Bestandsaufnahme ausschließen" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "Automatische Inventur-Periode" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Anzahl der Tage zwischen automatischen Bestandsaufnahmen (zum Deaktivieren auf Null setzen)" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "Löschintervall für Berichte" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Inventurberichte werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "Vollständige Namen von Benutzern anzeigen" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Nicht validierte Stücklisten anzeigen" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" @@ -3091,450 +3094,450 @@ msgstr "Zeige überfällige Bauaufträge" msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "Ausstehende Versandaufträge anzeigen" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Zeige Neuigkeiten" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Neuigkeiten auf der Startseite anzeigen" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:2082 +#: common/models.py:2076 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:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "Standard-Etikettendrucker" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:2096 +#: common/models.py:2092 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:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Teile suchen" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "Teile in der Suchvorschau anzeigen" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "Zulieferteile durchsuchen" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "Zuliefererteile in der Suchvorschau anzeigen" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Herstellerteile durchsuchen" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "Herstellerteile in der Suchvorschau anzeigen" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "Kategorien durchsuchen" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "Teilekategorien in der Suchvorschau anzeigen" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "Bestand durchsuchen" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "Lagerartikel in Suchvorschau anzeigen" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "Nicht verfügbare Artikel ausblenden" -#: common/models.py:2145 +#: common/models.py:2136 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:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "Lagerorte durchsuchen" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "Lagerorte in Suchvorschau anzeigen" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "Firmen durchsuchen" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "Firmen in der Suchvorschau anzeigen" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Bauaufträge durchsuchen" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "Bauaufträge in der Suchvorschau anzeigen" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "Bestellungen durchsuchen" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "Bestellungen in der Suchvorschau anzeigen" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktive Bestellungen ausblenden" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Aufträge durchsuchen" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "Aufträge in der Suchvorschau anzeigen" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "Inaktive Aufträge ausblenden" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktive Aufträge in der Suchvorschau ausblenden" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Suche nach Rücksendungen" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "Rücksendungen in der Suchvorschau anzeigen" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "Inaktive Rücksendungen ausblenden" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:2215 +#: common/models.py:2204 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:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "Regex Suche" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "Ganzes Wort suchen" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Teilzeitplanung" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventur" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "Zeichenkettenlänge in Tabellen" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "Standardvorlage für Teilebeschriftung" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "Die Teil-Etikettenvorlage, die automatisch ausgewählt werden soll" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "Lagerartikel-Standardvorlage" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "Die Lagerartikel-Etikettenvorlage soll automatisch ausgewählt werden" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "Standardetikettenvorlage für Lagerstandort" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "Die Lagerstandort-Etikettenvorlage, die automatisch ausgewählt werden soll" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "Fehlerberichte empfangen" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "Benachrichtigungen bei Systemfehlern erhalten" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Preis" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Aktiv" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "Token" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Geheimnis" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Host" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Kopfzeile" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Body" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "ID" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Veröffentlicht" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Zusammenfassung" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "Gelesen" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "Wurde diese Nachricht gelesen?" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3544,76 +3547,76 @@ msgstr "Wurde diese Nachricht gelesen?" msgid "Image" msgstr "Bild" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "Bilddatei" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "Einheitsname muss eine gültige Kennung sein" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "Einheitsname" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "Optionales Einheitssymbol" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definition" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "Einheitsdefinition" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Neue {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "Eine neue Bestellung wurde erstellt und Ihnen zugewiesen" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} storniert" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "Eine Bestellung, die Ihnen zugewiesen war, wurde storniert" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "Artikel erhalten" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "Artikel wurden aus einer Bestellung erhalten" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "Artikel wurden aus einer Rücksendung erhalten" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "Fehler in Plugin aufgetreten" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Datei hochgeladen" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3621,19 +3624,19 @@ msgstr "Datei hochgeladen" msgid "Match Fields" msgstr "Übereinstimmende Felder" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "Positionen zuordnen" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "Felder zuteilen fehlgeschlagen" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Teile importiert" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3644,186 +3647,186 @@ msgstr "Teile importiert" msgid "Previous Step" msgstr "Vorheriger Schritt" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Firmenbeschreibung" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "Firmenbeschreibung" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Website" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Firmenwebsite Adresse/URL" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Kontakt-Tel." -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Kontakt-Telefon" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Kontakt-Email" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Kontakt" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Anlaufstelle" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "ist Kunde" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Verkaufen Sie Teile an diese Firma?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "ist Zulieferer" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Kaufen Sie Teile von dieser Firma?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "ist Hersteller" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Produziert diese Firma Teile?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Firma" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "Firma auswählen" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "Adresstitel" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "Titel zur Beschreibung des Adresseintrages" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "Primäre Adresse" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "Als primäre Adresse festlegen" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "Linie 1" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "Adresszeile 1" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "Linie 2" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "Adresszeile 2" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "Postleitzahl" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "Stadt/Region" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "Postleitzahl Stadt/Region" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "Staat/Provinz" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "Bundesland" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "Land" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "Adresse Land" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "Versandnotizen" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "Notizen für Versandkurier" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "Interne Versandnotizen" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "Versandnotizen für interne Verwendung" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "Link zu Adressinformationen (extern)" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basisteil" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Teil auswählen" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3833,12 +3836,12 @@ msgstr "Teil auswählen" msgid "Manufacturer" msgstr "Hersteller" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3848,69 +3851,69 @@ msgstr "Hersteller auswählen" msgid "MPN" msgstr "MPN" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Hersteller-Teilenummer" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "Externe URL für das Herstellerteil" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Herstellerteil" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Parametername" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Wert" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Einheiten" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Parametereinheit" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Packeinheiten müssen mit den Basisteileinheiten kompatibel sein" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Packeinheiten müssen größer als Null sein" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3923,28 +3926,28 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren" msgid "Supplier" msgstr "Zulieferer" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Herstellerteil auswählen" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "Teil-URL des Zulieferers" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3954,27 +3957,27 @@ msgstr "Zuliefererbeschreibung des Teils" msgid "Note" msgstr "Notiz" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Verpackungen" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3984,27 +3987,27 @@ msgstr "Teile-Verpackungen" msgid "Pack Quantity" msgstr "Packmenge" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Gesamtmenge, die in einer einzelnen Packung geliefert wird. Für Einzelstücke leer lassen." -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "Vielfache" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "Mehrere bestellen" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "Verfügbare Menge von Lieferanten" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "Verfügbarkeit aktualisiert" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "Datum des letzten Updates der Verfügbarkeitsdaten" @@ -4066,10 +4069,10 @@ msgstr "Bild von URL herunterladen" msgid "Delete image" msgstr "Bild löschen" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4084,7 +4087,7 @@ msgstr "Kunde" msgid "Uses default currency" msgstr "verwendet Standard-Währung" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4164,7 +4167,7 @@ msgstr "Zulieferer-Bestand" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Bestellungen" @@ -4187,7 +4190,7 @@ msgstr "Neue Bestellung" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Aufträge" @@ -4212,7 +4215,7 @@ msgstr "Zugeordneter Bestand" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "Rücksendeaufträge" @@ -4280,7 +4283,7 @@ msgstr "Keine Herstellerdaten verfügbar" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Zulieferer" @@ -4329,7 +4332,7 @@ msgid "Addresses" msgstr "Adressen" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4378,8 +4381,8 @@ msgstr "Zuliefererteil entfernen" msgid "No supplier information available" msgstr "Keine Lieferanteninformationen verfügbar" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4428,16 +4431,16 @@ msgstr "Barcode mit Zuliefererteil verknüpfen" msgid "Update Part Availability" msgstr "Teilverfügbarkeit aktualisieren" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Lagerartikel" @@ -4470,11 +4473,11 @@ msgstr "Firmen" msgid "New Company" msgstr "Neue Firma" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Label Name" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Label Beschreibung" @@ -4486,7 +4489,7 @@ msgstr "Label" msgid "Label template file" msgstr "Label-Vorlage-Datei" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Aktiviert" @@ -4510,7 +4513,7 @@ msgstr "Höhe [mm]" msgid "Label height, specified in mm" msgstr "Label-Höhe in mm" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Dateinamen-Muster" @@ -4518,14 +4521,14 @@ msgstr "Dateinamen-Muster" msgid "Pattern for generating label filenames" msgstr "Muster für die Erstellung von Label-Dateinamen" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Filter" @@ -4542,7 +4545,7 @@ msgstr "QR-Code" msgid "QR code" msgstr "QR-Code" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4551,11 +4554,11 @@ msgstr "QR-Code" msgid "Total Price" msgstr "Gesamtpreis" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "Keine passende Bestellung gefunden" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4569,7 +4572,7 @@ msgstr "Keine passende Bestellung gefunden" msgid "Purchase Order" msgstr "Bestellung" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4578,192 +4581,192 @@ msgstr "Bestellung" msgid "Return Order" msgstr "Rücksendeauftrag" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Unbekannt" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "Gesamtpreis für diese Bestellung" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "Auftragswährung" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "Währung für diesen Auftrag (leer lassen, um Firmenstandard zu verwenden)" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "Kontakt stimmt nicht mit der ausgewählten Firma überein" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "Auftragsbeschreibung (optional)" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "Projektcode für diesen Auftrag auswählen" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Link auf externe Seite" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Geplantes Lieferdatum für Auftrag." -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Erstellt von" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "Ansprechpartner für diesen Auftrag" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "Firmenadresse für diesen Auftrag" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Bestellungs-Status" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Firma bei der die Teile bestellt werden" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "Zulieferer Bestellreferenz" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "Empfangen von" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Aufgabedatum" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Datum an dem die Bestellung aufgegeben wurde" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "Versand von" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "Auftrag kann nicht abgeschlossen werden, da keine Teile zugewiesen wurden" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "Nur ein offener Auftrag kann als abgeschlossen markiert werden" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Zieldatum für diesen Einzelposten (leer lassen, um das Zieldatum des Auftrags zu verwenden)" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "Positionsbeschreibung (optional)" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Kontext" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "Zusätzlicher Kontext für diese Zeile" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "Stückpreis" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "Lieferantenteil muss mit Lieferant übereinstimmen" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "gelöscht" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Bestellung" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4773,261 +4776,261 @@ msgstr "Zuliefererteil" msgid "Received" msgstr "Empfangen" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "Ein virtuelles Teil kann nicht einem Auftrag zugeordnet werden" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Verkaufspreis" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Versendete Menge" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Versanddatum" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Lieferdatum" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "Versanddatum" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Kontrolliert von" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Benutzer, der diese Sendung kontrolliert hat" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Sendung" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Sendungsnummer" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Sendungsverfolgungsnummer" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Informationen zur Sendungsverfolgung" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "Rechnungsnummer" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "Referenznummer für zugehörige Rechnung" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "Sendung wurde bereits versandt" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "Sendung hat keine zugewiesene Lagerartikel" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "Lagerartikel wurde nicht zugewiesen" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "Auftrag gehört nicht zu Sendung" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "Sendung gehört nicht zu Auftrag" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Position" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "Sendungsnummer-Referenz" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Position" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "Lagerartikel für Zuordnung auswählen" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "Rücksendungsreferenz" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "Firma von der die Artikel zurückgeschickt werden" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "Status der Rücksendung" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "Nur serialisierte Artikel können einer Rücksendung zugeordnet werden" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "Artikel zur Rücksendung auswählen" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "Empfangsdatum" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "Das Datum des Empfangs dieses Rücksendeartikels" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Ergebnis" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "Kosten für die Rückgabe oder Reparatur dieses Objektes" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "Bestellung kann nicht verworfen werden" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "Erlaube das Schließen des Auftrags mit unvollständigen Positionen" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "Auftrag hat unvollständige Positionen" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "Der Auftrag ist nicht offen" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Kaufpreiswährung" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "Zuliefererteil muss ausgewählt werden" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "Bestellung muss angegeben sein" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "Lieferant muss mit der Bestellung übereinstimmen" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "Die Bestellung muss mit dem Lieferant übereinstimmen" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "Position" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "Position stimmt nicht mit Kaufauftrag überein" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "Zielort für empfangene Teile auswählen" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "Losnummer für eingehende Lagerartikel" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Seriennummern für eingehende Lagerartikel" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Barcode" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "Gescannter Barcode" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "Barcode ist bereits in Verwendung" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "Ganzzahl für verfolgbare Teile erforderlich" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "Positionen müssen angegeben werden" @@ -5039,51 +5042,51 @@ msgstr "Ziel-Lagerort muss angegeben werden" msgid "Supplied barcode values must be unique" msgstr "Barcode muss eindeutig sein" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "Verkaufspreis-Währung" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "Keine Sendungsdetails angegeben" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "Position ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "Anzahl muss positiv sein" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Seriennummern zum Zuweisen eingeben" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "Sendung wurde bereits versandt" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "Sendung ist nicht diesem Auftrag zugeordnet" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "Folgende Serienummern konnten nicht gefunden werden" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "Folgende Seriennummern sind bereits zugewiesen" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5091,24 +5094,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "Überfällige Bestellung" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Bestellung {po} ist jetzt überfällig" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "Überfälliger Auftrag" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Auftrag {so} ist jetzt überfällig" @@ -5477,579 +5480,579 @@ msgstr "Neue Sendung" msgid "Match Supplier Parts" msgstr "Zuliefererteile zuordnen" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "Auftrag nicht gefunden" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Preis nicht gefunden" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Stückpreis für {part} auf {price} aktualisiert" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "Teil-ID" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Name des Teils" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "Beschreibung des Teils" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Version" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Schlüsselwörter" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "Artikelbild" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "Kategorie-ID" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "Kategoriename" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "Standard-Standortnummer" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "Standard-Lieferantennummer" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante von" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimaler Bestand" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "Auf Lager" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Bestellt" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Benutzt in" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "Im Bau" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Minimale Kosten" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Maximale Kosten" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "Eltern ID" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "Name des übergeordneten Teils" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Pfad zur Kategorie" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Teile" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "Stücklistenebene" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "Stücklisten-Position ID" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "Übergeordnete IPN" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "Teil IPN" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Niedrigster Preis" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Höchster Preis" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "Eingehende Bestellung" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "Ausgehender Auftrag" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "Lagerartikel produziert von Bauauftrag" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "Lagerartikel für Bauauftrag benötigt" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "Gültig" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "Gesamte Stückliste validieren" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "Diese Option muss ausgewählt werden" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Standard-Lagerort" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Gesamtbestand" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Verfügbarer Bestand" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "Menge für die Preisberechnung" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Teil-Kategorien" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Standard-Lagerort für Teile dieser Kategorie" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strukturell" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Teile können nicht direkt einer strukturellen Kategorie zugeordnet werden, können aber untergeordneten Kategorien zugeordnet werden." -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Standard Stichwörter" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Symbol" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Symbol (optional)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Sie können diese Teilekategorie nicht als strukturell festlegen, da ihr bereits Teile zugewiesen sind!" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "Ungültige Auswahl für übergeordnetes Teil" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN muss mit Regex-Muster {pattern} übereinstimmen" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits." -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "Artikelbeschreibung (optional)" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategorie" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Bestand" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "Maßeinheit für diesen Teil" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:966 +#: part/models.py:1034 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:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "Verantwortlicher Besitzer für dieses Teil" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "Währung für die Berechnung der Preise im Cache" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "Minimale Stücklisten Kosten" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "Minimale Kosten für Teile" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "Maximale Stücklisten Kosten" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "Maximale Kosten für Teile" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "Minimale Einkaufskosten" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "Minimale historische Kaufkosten" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "Maximale Einkaufskosten" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "Maximale historische Einkaufskosten" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "Minimaler interner Preis" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "Minimale Kosten basierend auf den internen Staffelpreisen" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "Maximaler interner Preis" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "Maximale Kosten basierend auf internen Preisstaffeln" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "Minimaler Lieferantenpreis" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "Mindestpreis für Teil von externen Lieferanten" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "Maximaler Lieferantenpreis" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "Maximaler Preis für Teil von externen Lieferanten" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "Minimale Variantenkosten" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "Berechnete minimale Kosten für Variantenteile" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "Maximale Variantenkosten" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "Berechnete maximale Kosten für Variantenteile" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "Mindestkosten überschreiben" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "Maximale Kosten überschreiben" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "Berechnete Mindestkosten" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "Berechnete Maximalkosten" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "Mindestverkaufspreis" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "Mindestverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "Maximaler Verkaufspreis" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "Maximalverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "Mindestverkaufskosten" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "Minimaler historischer Verkaufspreis" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "Maximale Verkaufskosten" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "Maximaler historischer Verkaufspreis" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "Teil für die Inventur" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "Stückzahl" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6061,334 +6064,334 @@ msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" msgid "Date" msgstr "Datum" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "Datum der Inventur" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "Zusätzliche Notizen" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "Benutzer, der diese Inventur durchgeführt hat" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "Mindestbestandswert" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "Geschätzter Mindestwert des vorhandenen Bestands" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "Maximaler Bestandswert" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "Geschätzter Maximalwert des vorhandenen Bestands" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "Bericht" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "Inventur-Berichtsdatei (intern generiert)" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "Anzahl der Teile" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "Benutzer, der diesen Inventurbericht angefordert hat" -#: part/models.py:3233 +#: part/models.py:3406 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:3250 +#: part/models.py:3423 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:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Benötigt" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:3289 +#: part/models.py:3465 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:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:3295 +#: part/models.py:3472 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:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "Checkbox-Parameter können keine Einheiten haben" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "Checkbox-Parameter können keine Auswahl haben" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "Auswahl muss einzigartig sein" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "Physikalische Einheiten für diesen Parameter" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "Parameter-Beschreibung" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Checkbox" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "Ist dieser Parameter eine Checkbox?" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Auswahlmöglichkeiten" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "Wert" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "Stufe" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "Stücklisten-Position" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Diese Stücklisten-Position ist ein Verbrauchsartikel (sie wird nicht in Bauaufträgen verfolgt)" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "überprüft" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "Diese Stücklistenposition wurde validiert" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Wird vererbt" -#: part/models.py:3818 +#: part/models.py:4020 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:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:3824 +#: part/models.py:4026 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:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "Teil-Beziehung kann nicht zwischen einem Teil und sich selbst erstellt werden" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "Doppelte Beziehung existiert bereits" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Kaufwährung dieses Lagerartikels" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "Keine Teile ausgewählt" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "Kategorie auswählen" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "Originalteil" @@ -6400,299 +6403,299 @@ msgstr "Originalteil zum Duplizieren auswählen" msgid "Copy Image" msgstr "Bild kopieren" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "Bild vom Originalteil kopieren" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "Stückliste vom Originalteil kopieren" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Parameter kopieren" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "Parameterdaten vom Originalteil kopieren" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "Anmerkungen kopieren" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "Notizen aus Originalteil kopieren" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "Start-Bestandsmenge" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Initiale Lagermenge für dieses Teil. Wenn die Menge null ist, wird kein Lagerbestand hinzugefügt." -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "Initialer Lagerort" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "Lagerstandort für dieses Teil angeben" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "Hersteller-Teilenummer" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "Ausgewählte Firma ist kein gültiger Lieferant" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "Ausgewählte Firma ist kein gültiger Hersteller" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "Herstellerteil mit dieser MPN existiert bereits" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "Lieferantenteil mit dieser SKU existiert bereits" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Teil duplizieren" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "Initiale Daten von anderem Teil kopieren" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "Initialer Lagerbestand" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "Erstelle Teil mit Ausgangsbestand" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "Lieferanteninformationen" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "Lieferanteninformationen zu diesem Teil hinzufügen" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "Kategorieparameter kopieren" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "Bilddatei existiert nicht" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Inventurbericht auf ein bestimmtes Teil und alle Variantenteile beschränken" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Inventurbericht auf eine bestimmte Teilekategorie und alle untergeordneten Kategorien beschränken" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Inventurbericht auf einen bestimmten Lagerort und alle untergeordneten Lagerorte beschränken" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "Externen Bestand ausschließen" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "Lagerartikel an externen Orten ausschließen" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "Bericht generieren" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "Erstelle Berichtsdatei mit berechneten Inventurdaten" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "Teile aktualisieren" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "Angegebene Teile mit berechneten Inventurdaten aktualisieren" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "Inventur-Funktionalität ist nicht aktiviert" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "Berechneten Wert für Mindestpreis überschreiben" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "Aktualisieren" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "Preis für dieses Teil aktualisieren" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "Teil auswählen, von dem Stückliste kopiert wird" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "Bestehende Daten entfernen" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "Vererbtes einschließen" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "Ungültige Zeilen überspringen" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "Ersatzteile kopieren" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "Bestehende Stückliste löschen" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "Keine Teilspalte angegeben" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "Mehrere übereinstimmende Teile gefunden" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "Keine passenden Teile gefunden" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "Teil ist nicht als Komponente angelegt" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "Menge nicht angegeben" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "Mindestens eine Stückliste-Position ist erforderlich" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "Gesamtstückzahl" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "Gesamt-Bestandswert min" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "Gesamt-Bestandswert max" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "Inventurbericht verfügbar" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "Ein neuer Inventurbericht steht zum Download zur Verfügung" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "Benachrichtigungen über geringen Bestand" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "Der verfügbare Bestand für {part.name} ist unter das konfigurierte Mindestniveau gefallen" @@ -6706,14 +6709,16 @@ msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 -#, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +#, fuzzy, python-format +#| msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "Die Stückliste für %(part)s wurde zuletzt von %(checker)s am %(check_date)s kontrolliert" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert." +#, fuzzy +#| msgid "This BOM item has been validated" +msgid "This BOM has not been validated." +msgstr "Diese Stücklistenposition wurde validiert" #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -6824,9 +6829,9 @@ msgid "Add stocktake information" msgstr "Inventurinformationen hinzufügen" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "Inventur" @@ -7234,7 +7239,7 @@ msgstr "" msgid "Edit" msgstr "Bearbeiten" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7363,11 +7368,11 @@ msgstr "Neue Teilevariante anlegen" msgid "Create a new variant part from this template" msgstr "Ein neues Variantenteil aus dieser Vorlage erstellen" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Unbekannte Datenbank" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" @@ -7375,107 +7380,107 @@ msgstr "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgid "Match References" msgstr "Referenzen zuteilen" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "Teil {new_part.name} kann nicht importiert werden, da keine Kategorie zugewiesen ist" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "Teilbild auswählen" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "Teilbild aktualisiert" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Teilbild nicht gefunden" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "Teilbepreisung" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Keine Aktion angegeben" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Keine passende Aktion gefunden" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Keine Treffer für Barcode" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Treffer für Barcode gefunden" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Barcode entspricht einem bereits vorhandenen Artikel" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "Artikel wurde bereits erhalten" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "Unzureichender Bestand verfügbar" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7489,11 +7494,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7509,7 +7514,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7517,7 +7522,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7525,19 +7530,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7545,15 +7550,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "Labeldruck fehlgeschlagen" @@ -7566,8 +7571,8 @@ msgid "Provides native support for barcodes" msgstr "Bietet native Unterstützung für Barcodes" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7575,49 +7580,49 @@ msgstr "Bietet native Unterstützung für Barcodes" msgid "InvenTree contributors" msgstr "InvenTree Mitwirkende" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree Benachrichtigungen" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "E-Mail-Benachrichtigungen aktivieren" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "Das Senden von Benachrichtigungen als E-Mails erlauben" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "Slack Benachrichtigungen aktivieren" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "Erlaube das Senden von Slack Channel Nachrichten für Benachrichtigungen" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "Eingehender Webhook-URL für Slack" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "URL, die verwendet wird, um Nachrichten an einen Slack-Kanal zu senden" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "Link öffnen" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7657,7 +7662,7 @@ msgstr "" msgid "Print a border around each label" msgstr "Einen Rahmen um jedes Label drucken" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "Querformat" @@ -7673,7 +7678,7 @@ msgstr "InvenTree Etikettendrucker" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "Label ist zu groß für Seitengröße" @@ -7733,113 +7738,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "Plugin-Konfiguration" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "Plugin-Konfigurationen" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "Schlüssel" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "Schlüssel des Plugins" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "Name des Plugins" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "Ist das Plugin aktiv" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "Installiert" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "Beispiel-Plugin" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "Integriertes Plugin" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Plugin" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "Methode" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "Kein Autor gefunden" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "Bestellungen aktivieren" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "Kauf-Funktionalität in InvenTree aktivieren" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "API-Schlüssel" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "Schlüssel für den Zugriff auf das externe API" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Numerisch" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "Eine numerische Einstellung" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "Auswahleinstellungen" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "Eine Einstellung mit mehreren Optionen" @@ -7851,35 +7856,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "InvenTree Mitwirkende" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "Quell-URL" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Quelle für das Paket - dies kann eine eigene Registry oder ein VCS-Pfad sein" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "Paket-Name" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Name für das Plugin-Paket - kann auch einen Versionstext enthalten" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "Plugin-Installation bestätigen" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Dies wird dieses Plugin sofort in die aktuelle Instanz installieren. Die Instanz wird sofort in Wartung gehen." -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "Installation nicht bestätigt" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "Entweder Paketname oder URL muss angegeben werden" @@ -7891,40 +7896,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "Plugin aktivieren" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "Dieses Plugin aktivieren" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Vorlagendatei '{template}' fehlt oder existiert nicht" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "Testbericht" @@ -7944,103 +7949,103 @@ msgstr "US-Legal" msgid "Letter" msgstr "US-Letter" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Vorlagen Name" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "Bericht-Vorlage Datei" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "Bericht-Vorlage Beschreibung" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "Bericht Revisionsnummer (autom. erhöht)" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "Seitengröße für PDF-Berichte" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "Muster für die Erstellung von Berichtsdateinamen" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "Bericht-Vorlage ist ein" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "Lagerartikel-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "einfügen Installiert in Tests" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "Test-Ergebnisse für Lagerartikel in Baugruppen einschließen" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "Bauauftrag Filter" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "Bau-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "Teil Filter" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "Bestellungs-Abfragefilter" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "Auftrags-Abfragefilter" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "Snippet" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "Berichts-Snippet" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "Snippet-Beschreibung" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "Ressource" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "Berichts-Ressource" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "Ressource-Beschreibung" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8081,7 +8086,7 @@ msgstr "Summe" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8107,12 +8112,12 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "Ergebnis" @@ -8138,7 +8143,7 @@ msgid "Installed Items" msgstr "Verbaute Objekte" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Seriennummer" @@ -8147,438 +8152,438 @@ msgstr "Seriennummer" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "Standort-ID" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "Ortsname" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Lagerortpfad" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "Lagerartikel ID" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "Statuscode" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "Zuliefererteil-ID" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "Zulieferer ID" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "Lieferant" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "Kunden ID" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "verbaut in" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "Bauauftrag-ID" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "Auftrags-ID" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "Bestellungs-ID" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "Überprüfung erforderlich" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "Löschen wenn leer" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "Ablaufdatum" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "Externer Standort" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "überfällig" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "Menge ist erforderlich" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "Gültiges Teil muss angegeben werden" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "Der angegebene Lieferantenartikel existiert nicht" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 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:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Bestand-Lagerorte" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagerartikel können nicht direkt an einen strukturellen Lagerort verlegt werden, können aber an einen untergeordneten Lagerort verlegt werden." -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Extern" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "Dies ist ein externer Lagerort" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Sie können diesen Lagerort nicht als strukturell markieren, da sich bereits Lagerartikel darin befinden!" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagerartikel können nicht in strukturelle Lagerorte abgelegt werden!" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "Für virtuelle Teile können keine Lagerartikel erstellt werden" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:645 +#: stock/models.py:677 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:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:673 +#: stock/models.py:706 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:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Eltern-Lagerartikel" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "Verpackung, in der dieser Lagerartikel gelagert ist" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "Losnummer für diesen Lagerartikel" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "Bauauftrag für diesen Lagerartikel" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "Bestellung für diesen Lagerartikel" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:824 +#: stock/models.py:877 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:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "In Teil umgewandelt" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1741 +#: stock/models.py:1785 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:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "Test Notizen" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "Seriennummer ist zu lang" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "Einkaufspreis dieses Lagerartikels, pro Einheit oder Verpackungseinheit" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "Seriennummern für neue Teile eingeben" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "Ziel-Bestand" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "Optionales Notizfeld" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" @@ -8594,116 +8599,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr " Transaktionsnotizen hinzufügen (optional)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "Lagerartikel ist nicht verfügbar" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "Ausgewähltes Teil ist nicht in der Stückliste" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "Ziel Lagerort für unverbautes Objekt" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "Wählen Sie einen Teil aus, zu dem dieser Lagerartikel geändert werden soll" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "Das ausgewählte Teil ist keine gültige Option für die Umwandlung" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "Ziel Lagerort für zurückgegebene Artikel" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "Teil muss verkaufbar sein" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "Artikel ist einem Kundenauftrag zugeordnet" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "Artikel ist einem Fertigungsauftrag zugeordnet" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "Kunde zum Zuweisen von Lagerartikel" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "Ausgewählte Firma ist kein Kunde" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "Notizen zur Lagerzuordnung" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "Eine Liste der Lagerbestände muss angegeben werden" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "Notizen zur Lagerartikelzusammenführung" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "Unterschiedliche Lieferanten erlauben" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "Unterschiedliche Status erlauben" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "Mindestens zwei Lagerartikel müssen angegeben werden" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "Primärschlüssel Lagerelement" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" @@ -8924,7 +8929,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "abgelaufen" @@ -9561,7 +9566,7 @@ msgstr "Kurs" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Löschen" @@ -12730,7 +12735,7 @@ msgstr "Entfernen" msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "Hinzufügen" @@ -13369,7 +13374,7 @@ msgstr "Benachrichtigungen anzeigen" msgid "New Notifications" msgstr "Neue Benachrichtigungen" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "Admin" @@ -13459,9 +13464,11 @@ msgstr "" #: templates/socialaccount/signup.html:10 #, python-format -msgid "You are about to use your %(provider_name)s account to login to\n" +msgid "" +"You are about to use your %(provider_name)s account to login to\n" "%(site_name)s.
As a final step, please complete the following form:" -msgstr "Sie sind dabei, Ihr %(provider_name)s Konto zu verwenden, um sich bei\n" +msgstr "" +"Sie sind dabei, Ihr %(provider_name)s Konto zu verwenden, um sich bei\n" "%(site_name)s anzumelden.
Als letzten Schritt füllen Sie bitte folgendes Formular aus:" #: templates/socialaccount/snippets/provider_list.html:26 @@ -13540,31 +13547,31 @@ msgstr "Ja" msgid "No" msgstr "Nein" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Benutzer" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Welche Benutzer gehören zu dieser Gruppe" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Persöhnliche Informationen" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Berechtigungen" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "wichtige Daten" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13580,15 +13587,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "Tokenname" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "Benutzerdefinierter Tokenname" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13600,39 +13607,42 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Gruppe" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Ansicht" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Ändern" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" +#, python-format +#~ msgid "The BOM for %(part)s has not been validated." +#~ msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert." diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index 4829bb47f9..65f463fbe5 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Greek\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "Το API endpoint δε βρέθηκε" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Δεν έχετε δικαιώματα να το δείτε αυτό" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Δεν εισήχθη τιμή" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Δεν ήταν δυνατή η μετατροπή από {original} σε {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Δόθηκε μη έγκυρη ποσότητα" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Δόθηκε μη έγκυρη ποσότητα ({exc})" @@ -47,22 +47,22 @@ msgstr "Δόθηκε μη έγκυρη ποσότητα ({exc})" msgid "Error details can be found in the admin panel" msgstr "Μπορείτε να βρείτε λεπτομέρειες σφάλματος στον πίνακα διαχείρισης" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Εισάγετε ημερομηνία" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Εισάγετε ημερομηνία" msgid "Notes" msgstr "Σημειώσεις" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Η τιμή '{name}' δεν εμφανίζεται σε μορφή μοτίβου" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Η παρεχόμενη τιμή δεν ταιριάζει με το απαιτούμενο απαραραίητη μοτίβο: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Εισάγετε κωδικό" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Εισάγετε νέο κωδικό πρόσβασης" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Επιβεβαιώστε τον κωδικό πρόσβασης" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Επιβεβαιώστε τον νέο κωδικό πρόσβασης" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Παλιός κωδικός πρόσβασης" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "E-mail (ξανά)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Επιβεβαίωση διεύθυνσης email" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Πρέπει να πληκτρολογήσετε το ίδιο email κάθε φορά." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Η παρεχόμενη κύρια διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυδρομείου δεν έχει εγκριθεί." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Η εγγραφή είναι απενεργοποιημένη." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Μη έγκυρη ποσότητα" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Κενό σειριακό αριθμό συμβολοσειράς" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Διπλότυπο serial number" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Μη έγκυρο εύρος ομάδας: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Το εύρος της ομάδας {group} υπερβαίνει την επιτρεπόμενη ποσότητα ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Μη έγκυρη ακολουθία ομάδας: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Δεν βρέθηκαν σειριακοί αριθμοί" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Ο αριθμός μοναδικών σειριακών αριθμών ({len(serials)}) πρέπει να αντιστοιχεί στην ποσότητα ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισάγατε" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Σφάλμα σύνδεσης" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Προέκυψε σφάλμα" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\"" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Σύνδεση στην εφαρμογή" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Email" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Τα μεταδεδομένα πρέπει να είναι ένα αντικείμενο dict python" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Μεταδεδομένα Πρόσθετου" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "JSON πεδίο μεταδεδομένων, για χρήση από εξωτερικά πρόσθετα" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Λανθασμένο μοτίβο" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Δώσατε λάθος μορφή κλειδιού" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Λείπει το απαραίτητο κλειδί" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Το πεδίο δεν μπορεί να είναι άδειο" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Η αναφορά πρέπει να ταιριάζει με το απαιτούμενο μοτίβο" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Ο αριθμός αναφοράς είναι πολύ μεγάλος" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Το αρχείο λείπει" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Λείπει ο εξωτερικός σύνδεσμος" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Συνημμένο" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Επιλέξτε αρχείο για επισύναψη" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Επιλέξτε αρχείο για επισύναψη" msgid "Link" msgstr "Σύνδεσμος" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Σχόλιο" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Σχόλιο αρχείου" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Χρήστης" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "ημερομηνία φόρτωσης" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Το όνομα αρχείου δεν μπορεί να είναι κενό" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Μη διαθέσιμη τοποθεσία συνημμένου" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Το όνομα αρχείου περιέχει μη έγκυρους χαρακτήρες '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Λείπει επέκταση ονόματος αρχείου" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Αρχείο με αυτό το όνομα υπάρχει ήδη" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Σφάλμα κατά τη μετονομασία" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχουν στον ίδιο γονέα" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Μη έγκυρη επιλογή" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Μη έγκυρη επιλογή" msgid "Name" msgstr "Όνομα" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Όνομα" msgid "Description" msgstr "Περιγραφή" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Περιγραφή (προαιρετική)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "γονέας" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Μονοπάτι" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Σημειώσεις Markdown (προαιρετικό)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Στοιχεία Barcode" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Δεδομένα barcode τρίτων" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Barcode Hash" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Μοναδικό hash δεδομένων barcode" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Βρέθηκε υπάρχων barcode" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Σφάλμα διακομιστή" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Πρέπει να είναι αριθμός" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Νόμισμα" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επιλογές" @@ -463,16 +462,16 @@ msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επ msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Όνομα αρχείου" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Μη έγκυρη τιμή" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Αρχείο Δεδομένων" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Επιλέξτε ένα αρχείο για ανέβασμα" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Μη υποστηριζόμενος τύπος αρχείου" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Το αρχείο είναι πολύ μεγάλο" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Δεν βρέθηκαν στήλες στο αρχείο" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Δεν βρέθηκαν γραμμές δεδομένων στο αρχείο" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Δεν παρασχέθηκαν σειρές δεδομένων" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Δεν δόθηκαν στήλες δεδομένων" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Λείπει απαιτούμενη στήλη: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Διπλή στήλη: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "Διεύθυνση URL του αρχείου απομακρυσμένης εικόνας" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "Βουλγάρικα" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Τσέχικα" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Γερμανικά" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Ελληνικά" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Αγγλικά" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Ισπανικά" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Ισπανικά (Μεξικό)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Φαρσί / Περσικά" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Φινλανδικά" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Γαλλικά" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Εβραϊκά" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Ινδικά" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Ούγγρικα" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Ιταλικά" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Ιαπωνικά" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Κορεάτικα" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Dutch" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Νορβηγικά" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Πολωνικά" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Πορτογαλικά" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Πορτογαλικά (Βραζιλίας)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Ρωσικά" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Σουηδικά" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Ταϊλανδέζικα" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Τούρκικα" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Βιετναμέζικα" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Κινέζικα (απλοποιημένα)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Κινέζικα (Παραδοσιακά)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Ο έλεγχος εργασίας στο παρασκήνιο απέτυχε" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Δεν έχει ρυθμιστεί διεύθυνση ηλεκτρονικού ταχυδρομείου" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Ο έλεγχος συστήματος για το Inventree απέτυχε" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Σε εκκρεμότητα" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Τοποθετήθηκε" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Ολοκληρώθηκε" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Ακυρώθηκε" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Χάθηκε" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Επιστράφηκε" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Σε Εξέλιξη" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Αποστάλθηκε" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "ΟΚ" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Απαιτείται προσοχή" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Κατεστραμμένο" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Καταστράφηκε" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Απορρίφθηκε" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "Σε Καραντίνα" @@ -854,23 +853,23 @@ msgstr "Επιστράφηκε από πελάτη" msgid "Production" msgstr "Παραγωγή" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "Μη έγκυρος κωδικός συναλλάγματος" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Η μέση τιμή δεν πρέπει να είναι αρνητική" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Η μέση τιμή δεν πρέπει να υπερβαίνει το 100%" @@ -894,27 +893,27 @@ msgstr "Η μέση τιμή δεν πρέπει να υπερβαίνει το msgid "Invalid value for overage" msgstr "Μη έγκυρη τιμή για υπέρβαση" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Τροποποίηση πληροφοριών χρήστη" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Ορισμός Κωδικού Πρόσβασης" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Τα πεδία κωδικού πρόσβασης πρέπει να ταιριάζουν" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Δόθηκε λάθος κωδικός πρόσβασης" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Πληροφορίες συστήματος" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Σχετικά με το InvenTree" @@ -922,14 +921,14 @@ msgstr "Σχετικά με το InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "Σειρά Κατασκευής" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Δημιουργία Παραγγελιών" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Αναφορά Παραγγελίας Κατασκευής" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατασκευή" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "Κατάσταση Κατασκευής" msgid "Build status code" msgstr "Κωδικός κατάστασης κατασκευής" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Κωδικός Παρτίδας" @@ -1140,7 +1139,7 @@ msgstr "Κωδικός Παρτίδας" msgid "Batch code for this build output" msgstr "Κωδικός παρτίδας για αυτήν την κατασκευή" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "Ημερομηνία ολοκλήρωσης στόχου" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Ημερομηνία ολοκλήρωσης" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "Το στοιχείο κατασκευής πρέπει να ορίζε msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" @@ -1338,9 +1337,9 @@ msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακ msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "Ακέραιη ποσότητα που απαιτείται για αν msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Ακέραιη ποσότητα που απαιτείται, καθώς ο λογαριασμός των υλικών περιέχει ανιχνεύσιμα μέρη" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Σειριακοί αριθμοί" @@ -1422,7 +1421,7 @@ msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,111 +7374,111 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Stock item allocated to sales order" msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "Edit User Information" msgid "Not enough information" msgstr "Τροποποίηση πληροφοριών χρήστη" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7494,11 +7492,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7514,7 +7512,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7522,7 +7520,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7530,19 +7528,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7550,19 +7548,19 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 #, fuzzy #| msgid "This build output has already been completed" msgid "Shipment has already been delivered" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Quantity to allocate" msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7575,8 +7573,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7584,49 +7582,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7666,7 +7664,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7682,7 +7680,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7742,113 +7740,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7860,35 +7858,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7900,40 +7898,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7953,103 +7951,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8090,7 +8088,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8116,12 +8114,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8147,7 +8145,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8156,438 +8154,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8603,116 +8601,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8933,7 +8931,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9570,7 +9568,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12739,7 +12737,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13378,7 +13376,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13549,31 +13547,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13589,15 +13587,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13609,38 +13607,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index fc5d82d6d6..53fac3199f 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: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,28 +18,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -48,22 +48,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -75,203 +75,203 @@ msgstr "" msgid "Notes" msgstr "" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -282,72 +282,71 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -363,19 +362,19 @@ msgstr "" msgid "Name" msgstr "" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -400,63 +399,63 @@ msgstr "" msgid "Description" msgstr "" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -464,16 +463,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -481,269 +480,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -855,23 +854,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -883,11 +882,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -895,27 +894,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -923,14 +922,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -944,14 +943,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -981,7 +980,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -997,9 +996,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1027,13 +1026,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1044,7 +1043,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1131,8 +1130,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1141,7 +1140,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1156,7 +1155,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1174,10 +1173,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1198,7 +1197,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1212,8 +1211,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1249,9 +1248,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1265,10 +1264,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1278,7 +1277,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1323,11 +1322,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1339,9 +1338,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1405,8 +1404,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1423,7 +1422,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1431,10 +1430,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1472,9 +1471,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1546,7 +1545,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1582,11 +1581,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1599,7 +1598,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1764,8 +1763,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1802,8 +1801,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1853,7 +1852,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1866,7 +1865,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2022,19 +2021,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2047,1041 +2046,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3093,450 +3092,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3546,76 +3545,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3623,19 +3622,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3646,186 +3645,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3835,12 +3834,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3850,69 +3849,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3925,28 +3924,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3956,27 +3955,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3986,27 +3985,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4068,10 +4067,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4086,7 +4085,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4166,7 +4165,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4189,7 +4188,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4214,7 +4213,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4282,7 +4281,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4331,7 +4330,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4380,8 +4379,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4430,16 +4429,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4472,11 +4471,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4488,7 +4487,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4512,7 +4511,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4520,14 +4519,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4544,7 +4543,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4553,11 +4552,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4571,7 +4570,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4580,192 +4579,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4775,261 +4774,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5041,51 +5040,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5093,24 +5092,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5479,579 +5478,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6063,334 +6062,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6402,299 +6401,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6709,12 +6708,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6826,9 +6824,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7236,7 +7234,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7365,11 +7363,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7377,107 +7375,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7491,11 +7489,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7511,7 +7509,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7519,7 +7517,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7527,19 +7525,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7547,15 +7545,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7568,8 +7566,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7577,49 +7575,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7659,7 +7657,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7675,7 +7673,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7735,113 +7733,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7853,35 +7851,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7893,40 +7891,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7946,103 +7944,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8083,7 +8081,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8109,12 +8107,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8140,7 +8138,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8149,438 +8147,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8596,116 +8594,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8926,7 +8924,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9563,7 +9561,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12732,7 +12730,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13371,7 +13369,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13542,31 +13540,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13582,15 +13580,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13602,38 +13600,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 6c81d66850..2e89b5af37 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-21 06:08\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "endpoint API no encontrado" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "El usuario no tiene permiso para ver este modelo" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Ningún valor proporcionado" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "No se pudo convertir {original} a {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "La cantidad suministrada es inválida" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "La cantidad suministrada es inválida ({exc})" @@ -47,22 +47,22 @@ msgstr "La cantidad suministrada es inválida ({exc})" msgid "Error details can be found in the admin panel" msgstr "Detalles del error pueden encontrarse en el panel de administración" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Ingrese la fecha" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Ingrese la fecha" msgid "Notes" msgstr "Notas" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "El valor '{name}' no aparece en formato de patrón" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "El valor proporcionado no coincide con el patrón requerido: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Introduzca contraseña" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Ingrese su nueva contraseña" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Confirmar la contraseña" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Confirmar contraseña nueva" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Contraseña anterior" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (de nuevo)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Confirmación de dirección de email" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Debe escribir el mismo correo electrónico cada vez." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "La dirección de correo electrónico principal proporcionada no es válida." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "El dominio de correo electrónico proporcionado no está aprobado." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Registro deshabilitado." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "No se ha proporcionado un número de serie" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Serie duplicada" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Rango de grupo inválido: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Rango del grupo {group} supera la cantidad permitida ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Secuencia de grupo inválida: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Numeros de serie no encontrados" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Los números de serie únicos ({len(serials)}) debe coincidir con la cantidad ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Eliminar etiquetas HTML de este valor" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Error de conexión" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "El servidor respondió con código de estado no válido" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Se ha producido una excepción" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "El servidor respondió con un valor de longitud de contenido inválido" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "El tamaño de la imagen es demasiado grande" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "La descarga de imagen excedió el tamaño máximo" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "El servidor remoto devolvió una respuesta vacía" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Iniciar sesión en la aplicación" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Correo electrónico" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Los metadatos deben ser un objeto diccionario de python" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Metadatos del complemento" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "Campo de metadatos JSON, para uso por complementos externos" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Patrón con formato incorrecto" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Clave de formato especificado desconocida" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Falta la clave de formato necesaria" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "El campo de servidor no puede estar vacío" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "La referencia debe coincidir con la expresión regular {pattern}" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "El número de referencia es demasiado grande" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Archivo no encontrado" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Falta enlace externo" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Archivo adjunto" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Seleccionar archivo para adjuntar" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Seleccionar archivo para adjuntar" msgid "Link" msgstr "Enlace" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Enlace a URL externa" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Comentario" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Comentario del archivo" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Usuario" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "fecha de subida" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "El nombre del archivo no debe estar vacío" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Directorio de archivos adjuntos no válido" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "El nombre del archivo contiene el carácter ilegal '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Falta el nombre de extensión del archivo" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Ya existe un archivo adjunto con este nombre" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Error al cambiar el nombre del archivo" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Selección no válida" msgid "Name" msgstr "Nombre" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Nombre" msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Descripción (opcional)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "padre" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Ruta" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Notas de Markdown (opcional)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Datos de código de barras" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Datos de código de barras de terceros" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Hash del Código de barras" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Hash único de datos de código de barras" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Error de servidor" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Se ha registrado un error por el servidor." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Debe ser un número válido" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Moneda" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Seleccionar moneda de las opciones disponibles" @@ -463,16 +462,16 @@ msgstr "Seleccionar moneda de las opciones disponibles" msgid "You do not have permission to change this user role." msgstr "No tiene permiso para cambiar este rol de usuario." -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "Solo los superusuarios pueden crear nuevos usuarios" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "Bienvenido/a a {current_site.name}" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -483,269 +482,269 @@ msgstr "" "\n" "Por favor, utilice la función de restablecimiento de contraseña para obtener acceso (en https://{domain})." -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Nombre de Archivo" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Archivo de datos" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Seleccione el archivo para subir" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Tipo de archivo no soportado" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "El archivo es demasiado grande" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "No hay columnas en el archivo" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "No hay filas de datos en el archivo" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "No se proporcionaron filas de datos" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "No hay columnas de datos proporcionadas" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta la columna requerida: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Columna duplicada: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "Imagen remota" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL de imagen remota" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "La descarga de imágenes desde la URL remota no está habilitada" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "Búlgaro" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Checo" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Danés" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Alemán" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Griego" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Inglés" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Español" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Español (México)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Persa" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Finlandés" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Francés" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebreo" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Hindi" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Húngaro" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japonés" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Holandés" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Noruego" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polaco" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugués" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugués (Brasileño)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Ruso" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Esloveno" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "Serbio" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Sueco" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Tailandés" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Chino (Simplificado)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Chino (Tradicional)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Falló la comprobación en segundo plano del worker" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "No se ha configurado el backend de correo" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Las comprobaciones de estado del sistema InvenTree fallaron" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Pendiente" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Colocado" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Terminado" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Cancelado" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Perdida" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Devuelto" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "En progreso" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Enviado" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Atención necesaria" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Dañado" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Destruido" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Rechazado" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "En cuarentena" @@ -857,23 +856,23 @@ msgstr "Devolución del cliente" msgid "Production" msgstr "Producción" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Devolución" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Reparación" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Reemplazo" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Reembolso" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Rechazo" @@ -885,11 +884,11 @@ msgstr "Unidad física inválida" msgid "Not a valid currency code" msgstr "No es un código de moneda válido" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "El valor excedente no debe ser negativo" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "El excedente no debe superar el 100%" @@ -897,27 +896,27 @@ msgstr "El excedente no debe superar el 100%" msgid "Invalid value for overage" msgstr "Valor no válido para sobrecarga" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Editar datos del usuario" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Configurar contraseña" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Los campos de contraseña deben coincidir" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Contraseña incorrecta proporcionada" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Información del sistema" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Acerca de InvenTree" @@ -925,14 +924,14 @@ msgstr "Acerca de InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La compilación debe cancelarse antes de poder ser eliminada" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Consumible" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -946,14 +945,14 @@ msgstr "Opcional" msgid "Tracked" msgstr "Rastreado" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Asignadas" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -983,7 +982,7 @@ msgstr "Construir órden" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Construir órdenes" @@ -999,9 +998,9 @@ msgstr "La parte del pedido de construcción no puede ser modificada" msgid "Build Order Reference" msgstr "Número de orden de construcción o armado" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1029,13 +1028,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Orden de Construcción o Armado a la que se asigna" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1046,7 +1045,7 @@ msgstr "Orden de Construcción o Armado a la que se asigna" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1133,8 +1132,8 @@ msgstr "Estado de la construcción" msgid "Build status code" msgstr "Código de estado de construcción" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Numero de lote" @@ -1143,7 +1142,7 @@ msgstr "Numero de lote" msgid "Batch code for this build output" msgstr "Número de lote de este producto final" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1158,7 +1157,7 @@ msgstr "Fecha límite de finalización" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Fecha de finalización" @@ -1176,10 +1175,10 @@ msgid "User who issued this build order" msgstr "El usuario que emitió esta orden" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1200,7 +1199,7 @@ msgstr "Usuario o grupo responsable de esta orden de construcción" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1214,8 +1213,8 @@ msgstr "Prioridad de construcción" msgid "Priority of this build order" msgstr "Prioridad de esta orden de construcción" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1251,9 +1250,9 @@ msgid "Build output does not match Build Order" msgstr "La salida de la construcción no coincide con el orden de construcción" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "La cantidad debe ser mayor que cero" @@ -1267,10 +1266,10 @@ msgstr "Ensamblar equipo" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1280,7 +1279,7 @@ msgstr "Ensamblar equipo" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1325,11 +1324,11 @@ msgstr "Item de construcción o armado debe especificar un resultado o salida, y msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Artículo de stock sobreasignado" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Cantidad asignada debe ser mayor que cero" @@ -1341,9 +1340,9 @@ msgstr "La cantidad debe ser 1 para el stock serializado" msgid "Selected stock item does not match BOM line" msgstr "El artículo de almacén selelccionado no coincide con la línea BOM" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1407,8 +1406,8 @@ msgstr "Cantidad entera requerida para partes rastreables" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Cantidad entera requerida, ya que la factura de materiales contiene partes rastreables" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Números de serie" @@ -1425,7 +1424,7 @@ msgstr "Autoasignar Números de Serie" msgid "Automatically allocate required items with matching serial numbers" msgstr "Asignar automáticamente los artículos requeridos con números de serie coincidentes" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "Los siguientes números seriales ya existen o son inválidos" @@ -1433,10 +1432,10 @@ msgstr "Los siguientes números seriales ya existen o son inválidos" msgid "A list of build outputs must be provided" msgstr "Debe proporcionarse una lista de salidas de construcción" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1474,9 +1473,9 @@ msgid "Location for completed build outputs" msgstr "Ubicación para las salidas de construcción completadas" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1548,7 +1547,7 @@ msgstr "Aceptar que los artículos de stock no se han asignado completamente a e msgid "Required stock has not been fully allocated" msgstr "El stock requerido no ha sido completamente asignado" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Aceptar incompleto" @@ -1584,11 +1583,11 @@ msgstr "Crear partida" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part debe apuntar a la misma parte que la orden de construcción" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "El artículo debe estar en stock" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Cantidad disponible ({q}) excedida" @@ -1601,7 +1600,7 @@ msgstr "La salida de la construcción debe especificarse para la asignación de msgid "Build output cannot be specified for allocation of untracked parts" msgstr "La salida de construcción no se puede especificar para la asignación de partes no rastreadas" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Debe proporcionarse la adjudicación de artículos" @@ -1766,8 +1765,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Stock no ha sido asignado completamente a este pedido de construcción" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1804,8 +1803,8 @@ msgid "Completed Outputs" msgstr "Salidas completadas" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1855,7 +1854,7 @@ msgstr "Fuente de stock" msgid "Stock can be taken from any available location." msgstr "Las existencias se pueden tomar desde cualquier ubicación disponible." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destinación" @@ -1868,7 +1867,7 @@ msgstr "Se requiere ubicación de destino" msgid "Allocated Parts" msgstr "Partes asignadas" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2024,19 +2023,19 @@ msgstr "Error leyendo el archivo (dimensión incorrecta)" msgid "Error reading file (data could be corrupted)" msgstr "Error al leer el archivo (los datos podrían estar corruptos)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Archivo" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Seleccione el archivo a cargar" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "Archivo {name.title()}" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "Seleccione el archivo {name} para subir" @@ -2049,1041 +2048,1041 @@ msgstr "Actualizado" msgid "Timestamp of last update" msgstr "Fecha y hora de la última actualización" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Código único del proyecto" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Descripción del proyecto" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "Usuario o grupo responsable de este projecto" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "Clave de configuración (debe ser única - mayúsculas y minúsculas)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "Valor de ajuste" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "El valor elegido no es una opción válida" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "El valor debe ser un valor booleano" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "El valor debe ser un entero" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "Cadena de clave debe ser única" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Sin grupo" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Un dominio vacío no está permitido." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nombre de dominio inválido: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "Sin plugin" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Reinicio requerido" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "Se ha cambiado una configuración que requiere un reinicio del servidor" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "Migraciones pendientes" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "Número de migraciones de base de datos pendientes" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "Nombre de la instancia del servidor" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "Descriptor de cadena para la instancia del servidor" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Usar nombre de instancia" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "Utilice el nombre de la instancia en la barra de título" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "Restringir mostrar 'acerca de'" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "Mostrar la modal `about` solo para superusuarios" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Nombre de empresa" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Nombre interno de empresa" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "URL Base" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "URL base para la instancia del servidor" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Moneda predeterminada" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "Seleccione la moneda base para los cálculos de precios" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "Intervalo de actualización de moneda" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Con qué frecuencia actualizar los tipos de cambio (establecer a cero para desactivar)" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "días" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "Plugin de Actualización de Moneda" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "Plugin de actualización de moneda a usar" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Descargar desde URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Permitir la descarga de imágenes y archivos remotos desde la URL externa" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Límite de tamaño de descarga" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Tamaño máximo de descarga permitido para la imagen remota" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "Agente de usuario usado para descargar desde la URL" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Permitir reemplazar el agente de usuario utilizado para descargar imágenes y archivos desde URL externa (dejar en blanco para el valor predeterminado)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "Validación estricta de URL" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "Requerir especificación de esquema al validar URLs" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Requiere confirmación" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Requiere confirmación explícita del usuario para ciertas acciones." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Profundidad del árbol" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profundidad de árbol predeterminada para treeview. Los niveles más profundos pueden ser cargados perezosamente a medida que son necesarios." -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Actualizar intervalo de actualización" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "Con qué frecuencia comprobar actualizaciones (establecer a cero para desactivar)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Copia de seguridad automática" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Activar copia de seguridad automática de los archivos de base de datos y medios" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Intervalo de respaldo automático" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Especificar número de días entre eventos automatizados de copia de seguridad" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "Intervalo de eliminación de tareas" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "Los resultados de las tareas en segundo plano se eliminarán después del número especificado de días" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "Intervalo de eliminación de registro de errores" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "Los registros de errores se eliminarán después del número especificado de días" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "Intervalo de eliminación de notificaciones" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Las notificaciones de usuario se eliminarán después del número especificado de días" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Soporte de código de barras" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "Habilitar el soporte para escáner de códigos de barras en la interfaz web" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Retraso de entrada de código de barras" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Tiempo de retraso en la lectura de códigos de barras" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Soporte para Webcam de código de barras" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "Permitir escaneo de código de barras a través de webcam en el navegador" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "Revisiones de partes" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "Habilitar campo de revisión para parte" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "Patrón de expresión regular para IPN de la parte coincidente" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Permitir IPN duplicado" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "Permitir que varias partes compartan el mismo IPN" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Permitir editar IPN" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "Permite cambiar el valor de IPN mientras se edita una parte" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Copiar parte de datos BOM" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "Copiar datos BOM por defecto al duplicar una parte" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "Copiar parámetros de parte" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "Copiar datos de parámetro por defecto al duplicar una parte" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "Copiar parte de datos de prueba" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "Copiar datos de parámetro por defecto al duplicar una parte" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Copiar plantillas de parámetros de categoría" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "Copiar plantillas de parámetros de categoría al crear una parte" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Plantilla" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Las partes son plantillas por defecto" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Montaje" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Componente" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "Las partes pueden ser usadas como subcomponentes por defecto" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Comprable" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Las partes son comprables por defecto" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Vendible" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Las partes se pueden vender por defecto" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Rastreable" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Las partes son rastreables por defecto" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Virtual" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Las partes son virtuales por defecto" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Mostrar importación en vistas" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "Mostrar el asistente de importación en algunas vistas de partes" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Mostrar partes relacionadas" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Mostrar partes relacionadas para una parte" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Datos iniciales de existencias" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Permitir la creación del stock inicial al añadir una nueva parte" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Datos iniciales del proveedor" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Permitir la creación de datos iniciales del proveedor al agregar una nueva parte" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Formato de visualización de Nombre de Parte" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Formato para mostrar el nombre de la parte" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Icono por defecto de la categoría de parte" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Icono por defecto de la categoría de parte (vacío significa que no hay icono)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "Forzar unidades de parámetro" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "Si se proporcionan unidades, los valores de parámetro deben coincidir con las unidades especificadas" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "Mínimo de lugares decimales en el precio" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Número mínimo de decimales a mostrar al procesar los datos de precios" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "Máximo de lugares decimales en el precio" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Número máximo de decimales a mostrar al procesar los datos de precios" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Usar precios de proveedor" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Incluir descuentos de precios del proveedor en los cálculos generales de precios" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Anulación del historial de compra" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "El precio histórico de compra anula los descuentos de precios del proveedor" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "Usar precio del artículo de almacén" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Usar los precios de los datos de inventario introducidos manualmente para los cálculos de precios" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "Edad del precio del artículo de almacén" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Excluir artículos de almacén anteriores a este número de días de los cálculos de precios" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "Usar precios variantes" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "Incluir variantes de precios en los cálculos generales de precios" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "Solo variantes activas" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "Usar solo partes de variantes activas para calcular los precios de variantes" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "Intervalo de reconstrucción de precios" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "Número de días antes de que el precio de la parte se actualice automáticamente" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Precios internos" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "Habilitar precios internos para partes" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Anulación del precio interno" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "Si está disponible, los precios internos anulan los cálculos del rango de precios" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Habilitar impresión de etiquetas" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Habilitar impresión de etiquetas desde la interfaz web" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "PPP de la imagen de etiqueta" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Resolución DPI al generar archivos de imagen que suministrar para etiquetar complementos de impresión" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Habilitar informes" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Habilitar generación de informes" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Modo de depuración" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Generar informes en modo de depuración (salida HTML)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Tamaño de página" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Tamaño de página predeterminado para informes PDF" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Habilitar informes de prueba" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Habilitar generación de informes de prueba" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Adjuntar informes de prueba" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Al imprimir un informe de prueba, adjuntar una copia del informe de prueba al artículo de almacén asociado" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "Seriales únicos globalmente" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "Los números de serie para los artículos de inventario deben ser únicos globalmente" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Autollenar números de serie" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Autorellenar números de serie en formularios" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Eliminar existencias agotadas" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Determina el comportamiento predeterminado cuando un artículo de almacén es agotado" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "Plantilla de código de lote" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "Plantilla para generar códigos de lote por defecto para artículos de almacén" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "Expiración de stock" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "Habilitar la funcionalidad de expiración de stock" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "Vender existencias caducadas" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "Permitir venta de existencias caducadas" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "Tiempo histórico de Stock" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "Número de días de artículos de stock se consideran obsoletos antes de caducar" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "Crear Stock Caducado" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "Permitir crear con stock caducado" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "Control de Stock" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "Icono por defecto de ubicación de almacén" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "Icono por defecto de ubicación de almacén (vacío significa que no hay icono)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "Mostrar Articulos de Stock Instalados" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "Mostrar los artículos de stock instalados en las tablas de stock" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "Patrón de Referencia de Ordenes de Armado" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la Orden de Ensamblado" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "Habilitar órdenes de devolución" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "Habilitar la funcionalidad de orden de devolución en la interfaz de usuario" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "Patrón de referencia de orden de devolución" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la orden de devolución" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "Editar ordenes de devolución completadas" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "Permitir la edición de ordenes de devolución después de que hayan sido completados" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "Patrón de Referencia de Ordenes de Venta" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "Patrón requerido para generar el campo de referencia de la orden de venta" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "Envío Predeterminado de Ordenes de Venta" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "Habilitar la creación de envío predeterminado con ordenes de entrega" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "Editar Ordenes de Venta Completados" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Permitir la edición de ordenes de venta después de que hayan sido enviados o completados" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Habilitar función de contraseña olvidada" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Habilitar registro" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "Habilitar SSO" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "Habilitar SSO en las páginas de inicio de sesión" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "Habilitar registro SSO" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Activar autoregistro a través de SSO para usuarios en las páginas de inicio de sesión" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Email requerido" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "Requiere usuario para suministrar correo al registrarse" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "Auto-rellenar usuarios SSO" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "Correo dos veces" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "Al registrarse pregunte dos veces a los usuarios por su correo" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Contraseña dos veces" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Dominios permitidos" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Grupo al registrarse" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "Grupo al que se asignan nuevos usuarios al registrarse" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "Forzar MFA" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Los usuarios deben utilizar seguridad multifactor." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Comprobar complementos al iniciar" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Comprobar que todos los complementos están instalados en el arranque - habilitar en entornos de contenedores" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "Habilitar integración de URL" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "Habilitar plugins para añadir rutas de URL" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "Habilitar integración de navegación" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "Habilitar plugins para integrar en la navegación" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "Habilitar integración de la aplicación" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "Habilitar plugins para añadir aplicaciones" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "Habilitar integración de programación" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "Habilitar plugins para ejecutar tareas programadas" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "Habilitar integración de eventos" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "Habilitar plugins para responder a eventos internos" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "Habilitar códigos de proyecto" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "Habilitar códigos de proyecto para rastrear proyectos" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "Intervalo de borrado de informe" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "Mostrar nombres completos de los usuarios" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "Mostrar nombres completos de usuarios en lugar de nombres de usuario" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "Ocultar partes inactivas" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ocultar partes inactivas en los resultados mostrados en la página de inicio" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Mostrar partes suscritas" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Mostrar las partes suscritas en la página principal" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Mostrar categorías suscritas" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Mostrar categorías de partes suscritas en la página de inicio" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Mostrar últimas partes" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Mostrar las últimas partes en la página de inicio" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Mostrar BOMs no validadas" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "Mostrar BOMs que esperan validación en la página de inicio" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Mostrar cambios recientes de stock" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Mostrar stock bajo" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Mostrar artículos de stock bajo en la página de inicio" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Mostrar stock agotado" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Mostrar artículos agotados en la página de inicio" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Mostrar stock necesario" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar artículos de stock necesarios para trabajos en la página de inicio" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Mostrar stock caducado" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Mostrar artículos de stock caducados en la página de inicio" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Mostrar stock obsoleto" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Mostrar artículos de stock obsoletos en la página de inicio" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Mostrar trabajos pendientes" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" @@ -3095,450 +3094,450 @@ msgstr "Mostrar trabajos vencidos" msgid "Show overdue builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "Mostrar Órdenes de Compra Pendientes" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "Mostrar las OC destacadas en la página de inicio" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "Mostrar OC atrasadas" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "Mostrar las OC vencidas en la página de inicio" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "Mostrar OV pendiemtes" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "Mostrar OV pendientes en la página de inicio" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "Mostrar OV atrasadas" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "Mostrar OV atrasadas en la página de inicio" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Mostrar novedades" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Mostrar las últimas novedades de InvenTree en la página de inicio" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "Mostrar etiqueta interior" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "Impresora predeterminada" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "Mostrar informe en línea" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Buscar partes" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "Buscar partes de proveedor" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Buscar Partes del Fabricante" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Ocultar Partes Inactivas" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "Excluir las partes inactivas de la ventana de previsualización de búsqueda" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "Buscar categorías" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "Mostrar categorias de la parte en la ventana de previsualización de búsqueda" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "Buscar inventario" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "Mostrar artículos del stock en la ventana de previsualización de búsqueda" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "Ocultar Artículos del Stock Agotados" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "Excluir artículos de stock que no están disponibles en la ventana de previsualización de búsqueda" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "Buscar ubicaciones" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "Mostrar ubicaciones de almacén en la ventana de vista previa de búsqueda" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "Buscar empresas" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "Mostrar empresas en la ventana de vista previa de búsqueda" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Buscar Pedidos de Construcción" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "Buscar órdenes de compra" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "Excluir pedidos de compra inactivos" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Buscar órdenes de venta" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Buscar órdenes de devolución" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "Resultados de la vista previa" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "Búsqueda usando una expresión regular" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "Habilitar expresiones regulares en las consultas de búsqueda" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "Búsqueda por palabra completa" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "Las consultas de búsqueda devuelven resultados para palabras enteras coincidentes" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Mostrar cantidad en formularios" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "Mostrar la cantidad de partes disponibles en algunos formularios" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "Formularios de cierre de teclas de escape" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "Usa la clave de escape para cerrar formularios modales" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Barra de navegación fija" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "La posición de la barra de navegación se fija en la parte superior de la pantalla" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Formato de Fecha" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Formato preferido para mostrar fechas" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planificación de partes" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "Cantidad de salto de precio" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Precio" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "Precio unitario a la cantidad especificada" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "Endpoint" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "Punto final en el que se recibe este webhook" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "Nombre para este webhook" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Activo" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "Está activo este webhook" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "Token" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "Token para el acceso" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Clave" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "Secreto compartido para HMAC" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "ID de mensaje" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "Identificador único para este mensaje" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Host" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "Servidor desde el cual se recibió este mensaje" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Encabezado" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "Encabezado del mensaje" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Cuerpo" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "Cuerpo de este mensaje" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "Endpoint en el que se recibió este mensaje" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "Trabajado en" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "¿El trabajo en este mensaje ha terminado?" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "Id" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Título" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Publicado" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Resumen" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "Leer" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "¿Esta noticia ya fue leída?" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3548,76 +3547,76 @@ msgstr "¿Esta noticia ya fue leída?" msgid "Image" msgstr "Imágen" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "Archivo de imagen" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "Nombre de unidad debe ser un identificador válido" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "Nombre de unidad" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Símbolo" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "Símbolo de unidad opcional" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definición" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "Definición de unidad" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Nuevo {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "Se ha creado un nuevo pedido y se le ha asignado" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} cancelado" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "Artículos Recibidos" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "Los artículos han sido recibidos contra una orden de compra" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "Los artículos han sido recibidos contra una orden de devolución" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "Error generado por el complemento" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Subir Archivo" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3625,19 +3624,19 @@ msgstr "Subir Archivo" msgid "Match Fields" msgstr "Coincidir Campos" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "Coincidir artículos" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "Falló la coincidencia de campos" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Partes importadas" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3648,186 +3647,186 @@ msgstr "Partes importadas" msgid "Previous Step" msgstr "Paso anterior" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Descripción de la empresa" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "Descripción de la empresa" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Página web" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "URL del sitio web de la empresa" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Teléfono" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Teléfono de contacto" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Correo electrónico de contacto" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Contacto" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Punto de contacto" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Enlace a información externa de la empresa" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "es cliente" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "¿Vendes artículos a esta empresa?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "es proveedor" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "¿Compras artículos de esta empresa?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "es fabricante" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "¿Esta empresa fabrica partes?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Moneda predeterminada utilizada para esta empresa" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Empresa" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "Seleccionar empresa" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "Título de dirección" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "Título que describe la entrada de dirección" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "Dirección principal" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "Establecer como dirección principal" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "Línea 1" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "Dirección línea 1" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "Línea 2" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "Dirección línea 2" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "Código postal" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "Ciudad/región" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "Código postal de ciudad/región" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "Estado/provincia" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "Estado o provincia" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "País" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "Dirección de país" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "Notas de envío de mensajería" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "Notas para el mensajero de envío" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "Notas de envío internas" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "Notas de envío para uso interno" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "Enlace a información de dirección (externa)" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Parte base" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Seleccionar parte" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3837,12 +3836,12 @@ msgstr "Seleccionar parte" msgid "Manufacturer" msgstr "Fabricante" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Seleccionar fabricante" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3852,69 +3851,69 @@ msgstr "Seleccionar fabricante" msgid "MPN" msgstr "MPN" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Número de parte de fabricante" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "URL para el enlace de parte del fabricante externo" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "Descripción de la parte del fabricante" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Parte del fabricante" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Nombre del parámetro" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Valor" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Valor del parámetro" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Unidades" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Unidades de parámetro" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Las unidades de paquete deben ser compatibles con las unidades de partes de base" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Las unidades de paquete deben ser mayor que cero" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte base" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3927,28 +3926,28 @@ msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte msgid "Supplier" msgstr "Proveedor" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Seleccionar proveedor" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Unidad de mantenimiento de stock de proveedores" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Seleccionar parte del fabricante" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "URL del enlace de parte del proveedor externo" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "Descripción de la parte del proveedor" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3958,27 +3957,27 @@ msgstr "Descripción de la parte del proveedor" msgid "Note" msgstr "Nota" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "costo base" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Paquetes" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "Embalaje de partes" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3988,27 +3987,27 @@ msgstr "Embalaje de partes" msgid "Pack Quantity" msgstr "Cantidad de paquete" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Cantidad total suministrada en un solo paquete. Dejar vacío para artículos individuales." -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "múltiple" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "Pedido múltiple" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "Cantidad disponible del proveedor" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "Disponibilidad actualizada" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "Fecha de última actualización de los datos de disponibilidad" @@ -4070,10 +4069,10 @@ msgstr "Descargar desde URL" msgid "Delete image" msgstr "Borrar imagen" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4088,7 +4087,7 @@ msgstr "Cliente" msgid "Uses default currency" msgstr "Usa la moneda predeterminada" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4168,7 +4167,7 @@ msgstr "Stock del Proveedor" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Ordenes de compra" @@ -4191,7 +4190,7 @@ msgstr "Nueva orden de compra" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Órdenes de venta" @@ -4216,7 +4215,7 @@ msgstr "Stock asignado" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "Ordenes de devolución" @@ -4284,7 +4283,7 @@ msgstr "No hay información del fabricante disponible" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Proveedores" @@ -4333,7 +4332,7 @@ msgid "Addresses" msgstr "Direcciones" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4382,8 +4381,8 @@ msgstr "Eliminar parte del proveedor" msgid "No supplier information available" msgstr "No hay información de proveedor disponible" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4432,16 +4431,16 @@ msgstr "Enlazar código de barras a la parte del proveedor" msgid "Update Part Availability" msgstr "Actualizar disponibilidad de parte" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Elementos de stock" @@ -4474,11 +4473,11 @@ msgstr "Empresas" msgid "New Company" msgstr "Nueva empresa" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Nombre etiqueta" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Descripción de etiqueta" @@ -4490,7 +4489,7 @@ msgstr "Etiqueta" msgid "Label template file" msgstr "Archivo de plantilla de etiqueta" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Habilitado" @@ -4514,7 +4513,7 @@ msgstr "Altura [mm]" msgid "Label height, specified in mm" msgstr "Altura de la etiqueta, especificada en mm" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Patrón de Nombre de archivo" @@ -4522,14 +4521,14 @@ msgstr "Patrón de Nombre de archivo" msgid "Pattern for generating label filenames" msgstr "Patrón para generar nombres de archivo de etiquetas" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Filtros" @@ -4546,7 +4545,7 @@ msgstr "Código QR" msgid "QR code" msgstr "Código QR" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4555,11 +4554,11 @@ msgstr "Código QR" msgid "Total Price" msgstr "Precio Total" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "No se encontró ninguna orden de compra coincidente" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4573,7 +4572,7 @@ msgstr "No se encontró ninguna orden de compra coincidente" msgid "Purchase Order" msgstr "Orden de compra" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4582,192 +4581,192 @@ msgstr "Orden de compra" msgid "Return Order" msgstr "Orden de devolución" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Desconocido" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "Precio total para este pedido" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "Moneda de pedido" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "Moneda para este pedido (dejar en blanco para utilizar el valor predeterminado de la empresa)" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "El contacto no coincide con la empresa seleccionada" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "Descripción del pedido (opcional)" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "Seleccione el código del proyecto para este pedido" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Enlace a Url externa" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Fecha esperada para la entrega del pedido. El pedido se retrasará después de esta fecha." -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Creado por" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Usuario o grupo responsable de este pedido" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "Punto de contacto para este pedido" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "Dirección de la empresa para este pedido" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Referencia del pedido" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Estado de la orden de compra" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Empresa de la cual se están encargando los artículos" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "Referencia del proveedor" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "Código de referencia de pedido del proveedor" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "recibido por" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Fecha de emisión" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Fecha de expedición del pedido" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "La fecha de pedido fue completada" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "El proveedor de la parte debe coincidir con el proveedor de PO" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "La cantidad debe ser un número positivo" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Empresa a la que se venden los artículos" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Referencia del cliente " -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "Código de referencia de pedido del cliente" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Fecha de envío" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "enviado por" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "El pedido no se puede completar porque no se han asignado partes" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "Sólo una orden abierta puede ser marcada como completa" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "El pedido no se puede completar porque hay envíos incompletos" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "El pedido no se puede completar porque hay partidas incompletas" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Cantidad del artículo" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "Referencia de partida" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "Notas de partida" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Fecha objetivo para esta partida (dejar en blanco para usar la fecha de destino de la orden)" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "Descripción de partida (opcional)" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Contexto" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "Contexto adicional para esta línea" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "Precio unitario" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "La parte del proveedor debe coincidir con el proveedor" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "eliminado" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Orden" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "Parte del proveedor" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4777,261 +4776,261 @@ msgstr "Parte del proveedor" msgid "Received" msgstr "Recibido" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "Número de artículos recibidos" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Precio de Compra" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Precio de compra unitario" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "¿Dónde quiere el comprador almacenar este objeto?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "Una parte virtual no puede ser asignada a un pedido de venta" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "Sólo las partes vendibles pueden ser asignadas a un pedido de venta" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Precio de Venta" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Precio de venta unitario" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Cantidad enviada" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Fecha del envío" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Fecha de entrega" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "Fecha de entrega del envío" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Revisado por" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Usuario que revisó este envío" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Envío" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Número de envío" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Número de Seguimiento" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Información de seguimiento del envío" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "Número de factura" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "Número de referencia para la factura asociada" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "El envío ya ha sido enviado" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "El envío no tiene artículos de stock asignados" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "El artículo de stock no ha sido asignado" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "No se puede asignar el artículo de stock a una línea con una parte diferente" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "No se puede asignar stock a una línea sin una parte" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La cantidad de asignación no puede exceder la cantidad de stock" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "La cantidad debe ser 1 para el stock serializado" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "La orden de venta no coincide con el envío" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "El envío no coincide con el pedido de venta" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Línea" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "Referencia del envío del pedido de venta" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Ítem" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "Seleccionar artículo de stock para asignar" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Especificar la cantidad de asignación de stock" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "Referencia de la orden de devolución" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "Empresa de la cual se están devolviendo los artículos" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "Estado de la orden de devolución" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "Sólo los artículos serializados pueden ser asignados a una orden de devolución" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "Seleccionar el artículo a devolver del cliente" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "Fecha de recepción" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "La fecha en la que se recibió este artículo de devolución" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Resultado" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "Salida para esta partida" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "Costo asociado con la devolución o reparación para esta partida" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "El pedido no puede ser cancelado" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "Permitir cerrar el pedido con partidas incompletas" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "El pedido tiene partidas incompletas" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "El pedido no está abierto" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Moneda del precio de compra" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "Debe especificar la parte del proveedor" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "La orden de compra debe especificarse" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "El proveedor debe coincidir con la orden de compra" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "La orden de compra debe coincidir con el proveedor" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "Partida" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "La partida no coincide con la orden de compra" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "Seleccione la ubicación de destino para los artículos recibidos" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "Introduzca el código de lote para los artículos de almacén entrantes" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Introduzca números de serie para artículos de almacén entrantes" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Código de barras" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "Código de barras escaneado" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "Código de barras en uso" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "Debe proporcionarse una cantidad entera para las partes rastreables" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "Se deben proporcionar las partidas" @@ -5043,51 +5042,51 @@ msgstr "Se requiere ubicación de destino" msgid "Supplied barcode values must be unique" msgstr "Los valores del código de barras deben ser únicos" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "Moneda del precio de venta" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "No se proporcionaron detalles de envío" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "La partida no está asociada con este pedido" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "La cantidad debe ser positiva" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Introduzca números de serie para asignar" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "El envío ya ha sido enviado" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "El envío no está asociado con este pedido" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "No se han encontrado coincidencias para los siguientes números de serie" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "Los siguientes números de serie ya están asignados" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "Partida de orden de devolución" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "La partida no coincide con la orden de devolución" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "La partida ya ha sido recibida" @@ -5095,24 +5094,24 @@ msgstr "La partida ya ha sido recibida" msgid "Items can only be received against orders which are in progress" msgstr "Los artículos sólo pueden ser recibidos contra pedidos en curso" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "Moneda de precio de línea" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "Orden de compra atrasada" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "La orden de compra {po} está atrasada" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "Orden de venta atrasada" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "La orden de venta {so} está atrasada" @@ -5481,579 +5480,579 @@ msgstr "Nuevo Envío" msgid "Match Supplier Parts" msgstr "Coincidir partes de proveedor" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "Orden de venta no encontrada" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Precio no encontrado" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Actualizado el precio unitario de {part} a {price}" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Actualizado el precio unitario de {part} a {price} y la cantidad a {qty}" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "ID de Parte" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Nombre de parte" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "Descripción de parte" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revisión" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Palabras claves" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "ID de Categoría" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "Nombre de categoría" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "ID de ubicación predeterminada" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "ID de proveedor predeterminado" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante de" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Stock mínimo" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "En Stock" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "En pedido" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Usado en" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "En construcción" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Costo mínimo" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Costo máximo" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "Identificador de la clase o especie padre" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "Nombre del padre" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Ruta de Categoría" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Partes" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "Nivel de BOM" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "ID de artículo de BOM" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "IPN del padre" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "IPN de la parte" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Precio mínimo" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Precio máximo" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "Orden de compra entrante" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "Orden de venta saliente" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "Válido" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "Validación de Lista de Materiales" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "Esta opción debe ser seleccionada" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Ubicación Predeterminada" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Inventario Total" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Stock Disponible" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "Cantidad de entrada para el cálculo del precio" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoría de parte" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Categorías de parte" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Ubicación predeterminada para partes de esta categoría" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Estructural" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Las partes no pueden asignarse directamente a una categoría estructural, pero pueden asignarse a categorías hijas." -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Palabras clave predeterminadas" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Palabras clave por defecto para partes en esta categoría" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Icono" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Icono (opcional)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "¡No puedes hacer que esta categoría de partes sea estructural porque algunas partes ya están asignadas!" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "Opción no válida para la parte principal" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "Ya existe un artículo de almacén con este número de serie" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN duplicado no permitido en la configuración de partes" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "Parte con este nombre, IPN y revisión ya existe." -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "¡No se pueden asignar partes a las categorías de partes estructurales!" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Nombre de la parte" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "Es plantilla" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "¿Es esta parte una parte de la plantilla?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "¿Es esta parte una variante de otra parte?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "Descripción de parte (opcional)" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqueda" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Categoría" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Categoría de parte" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "Número de parte interna" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "Revisión de parte o número de versión" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "¿Dónde se almacena este artículo normalmente?" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Proveedor por defecto" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "Parte de proveedor predeterminada" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "Expiración por defecto" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "Nivel mínimo de stock permitido" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "Unidades de medida para esta parte" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "¿Se puede construir esta parte a partir de otras partes?" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "¿Se puede utilizar esta parte para construir otras partes?" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "¿Esta parte tiene seguimiento de objetos únicos?" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "¿Se puede comprar esta parte a proveedores externos?" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "¿Se puede vender esta parte a los clientes?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "¿Está activa esta parte?" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "¿Es ésta una parte virtual, como un producto de software o una licencia?" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "Suma de verificación de BOM" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "Suma de verificación de BOM almacenada" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "BOM comprobado por" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "Fecha BOM comprobada" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "Creación de Usuario" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Último inventario" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "Vender múltiples" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "Moneda utilizada para almacenar en caché los cálculos de precios" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "Costo mínimo de BOM" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "Costo mínimo de partes de componentes" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "Costo máximo de BOM" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "Costo máximo de partes de componentes" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "Costo mínimo de compra" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "Costo histórico mínimo de compra" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "Costo máximo de compra" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "Costo histórico máximo de compra" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "Precio interno mínimo" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "Precio interno máximo" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "Costo máximo basado en precios reducidos internos" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "Precio mínimo de proveedor" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "Precio mínimo de la parte de proveedores externos" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "Precio máximo de proveedor" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "Precio máximo de la parte de proveedores externos" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "Costo mínimo de variante" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "Costo mínimo calculado de las partes variantes" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "Costo máximo de variante" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "Costo máximo calculado de las partes variantes" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "Precio de venta mínimo" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "Precio de venta mínimo basado en precios reducidos" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "Precio de venta máximo" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "Precio de venta máximo basado en precios reducidos" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "Costo de venta mínimo" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "Precio de venta mínimo histórico" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "Número de artículos" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6065,334 +6064,334 @@ msgstr "" msgid "Date" msgstr "Fecha" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "Notas adicionales" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "Informe" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "Número de partes" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "Las plantillas de prueba sólo pueden ser creadas para partes rastreables" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "Ya existe una prueba con este nombre para esta parte" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nombre de prueba" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "Introduzca un nombre para la prueba" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "Descripción de prueba" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "Introduce la descripción para esta prueba" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Requerido" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "¿Es necesario pasar esta prueba?" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Requiere valor" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "¿Esta prueba requiere un valor al agregar un resultado de la prueba?" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Adjunto obligatorio" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "¿Esta prueba requiere un archivo adjunto al agregar un resultado de la prueba?" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "El nombre de parámetro en la plantilla tiene que ser único" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "Nombre de Parámetro" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Casilla de verificación" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "¿Es este parámetro una casilla de verificación?" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Opciones" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "Opciones válidas para este parámetro (separados por comas)" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "Opción inválida para el valor del parámetro" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "Parte principal" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Plantilla de parámetro" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "Datos" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "Valor del parámetro" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valor predeterminado" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "Valor de parámetro por defecto" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "ID de parte o nombre de parte" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "Valor de ID de parte única" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "Valor IPN de parte" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "Nivel" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "Nivel de BOM" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "Item de Lista de Materiales" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "Seleccionar parte principal" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "Sub parte" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "Seleccionar parte a utilizar en BOM" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "Cantidad del artículo en BOM" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "Este artículo BOM es opcional" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Este artículo de BOM es consumible (no está rastreado en órdenes de construcción)" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Exceso" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "Referencia de artículo de BOM" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "Notas del artículo de BOM" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "Suma de verificación" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "Suma de verificación de línea de BOM" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Validado" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "Este artículo de BOM ha sido validado" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Este artículo BOM es heredado por BOMs para partes variantes" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Permitir variantes" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Artículos de stock para partes variantes pueden ser usados para este artículo BOM" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "La cantidad debe ser un valor entero para las partes rastreables" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "Debe especificar la subparte" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "Ítem de BOM sustituto" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sustituta no puede ser la misma que la parte principal" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "Artículo BOM superior" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "Sustituir parte" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "Seleccionar parte relacionada" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Moneda de compra de ítem de stock" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "Parte original" @@ -6404,299 +6403,299 @@ msgstr "Seleccione la parte original a duplicar" msgid "Copy Image" msgstr "Copiar Imagen" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "Copiar imagen desde la parte original" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Copiar BOM" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "Copiar la factura de materiales de la parte original" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Copiar Parámetros" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "Copiar datos del parámetro de la parte original" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "Cantidad Inicial de Stock" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "Seleccione proveedor (o déjelo en blanco para saltar)" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "Seleccionar fabricante (o dejar en blanco para saltar)" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "Número de parte del fabricante" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "La empresa seleccionada no es un proveedor válido" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "La empresa seleccionada no es un fabricante válido" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Duplicar Parte" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "Información del proveedor" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "Añadir información inicial del proveedor para esta parte" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "Copiar Parámetros de Categoría" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "Generar informe" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "Actualizar partes" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "Actualizar" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "Seleccionar parte de la que copiar BOM" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "Eliminar Datos Existentes" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "Eliminar artículos BOM existentes antes de copiar" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "Incluye Heredado" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluye artículos BOM que son heredados de partes con plantillas" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "Omitir filas no válidas" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "Activar esta opción para omitir filas inválidas" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "Copiar partes sustitutas" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "Limpiar BOM Existente" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "Varios resultados encontrados" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "No se encontraron partes coincidentes" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "La parte no está designada como componente" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "Cantidad no proporcionada" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Cantidad no válida" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "Se requiere al menos un artículo BOM" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "Cantidad Total" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "Costo total mínimo" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "Costo total máximo" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "Notificación por bajo stock" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6710,14 +6709,16 @@ msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 -#, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +#, fuzzy, python-format +#| msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "El BOM para %(part)s fue revisado por última vez por %(checker)s el %(check_date)s" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "El BOM para %(part)s no ha sido validada." +#, fuzzy +#| msgid "This BOM item has been validated" +msgid "This BOM has not been validated." +msgstr "Este artículo de BOM ha sido validado" #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -6828,9 +6829,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "Verificación de Inventario" @@ -7238,7 +7239,7 @@ msgstr "" msgid "Edit" msgstr "Editar" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7367,11 +7368,11 @@ msgstr "Crear nueva variante de parte" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Base de datos desconocida" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7379,107 +7380,107 @@ msgstr "" msgid "Match References" msgstr "Coincidir Referencias" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "Seleccionar Imagen de Parte" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "Imagen de parte actualizada" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Imagen de parte no encontrada" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "Precio de parte" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "No se especificó ninguna acción" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "No se encontró ninguna acción coincidente" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "No se encontró ninguna coincidencia para los datos del código de barras" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Coincidencia encontrada para datos de códigos de barras" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "El código de barras coincide con artículo existente" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7493,11 +7494,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7513,7 +7514,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7521,7 +7522,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7529,19 +7530,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7549,15 +7550,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "Impresión de etiquetas fallida" @@ -7570,8 +7571,8 @@ msgid "Provides native support for barcodes" msgstr "Proporciona soporte nativo para códigos de barras" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7579,49 +7580,49 @@ msgstr "Proporciona soporte nativo para códigos de barras" msgid "InvenTree contributors" msgstr "Contribuidores de InvenTree" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "Notificaciones de InvenTree" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "Métodos de notificaciones salientes integrados" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "Habilitar notificaciones por correo electrónico" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "Permitir el envío de correos electrónicos para notificaciones de eventos" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "Activar notificaciones de slack" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "Permitir el envío de mensajes por canal de slack para notificaciones de eventos" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "URL de webhook entrante de Slack" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "URL que se utiliza para enviar mensajes a un canal de slack" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "Abrir enlace" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7661,7 +7662,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7677,7 +7678,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7737,113 +7738,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "Configuración del complemento" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "Configuraciones del Plug-in" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "Clave" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "Clave del complemento" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "Nombre del complemento" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "Está activo el complemento" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "Instalado" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "Complemento de ejemplo" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "Complemento integrado" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Complemento" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "Método" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "No se encontró autor" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "El complemento '{p}' no es compatible con la versión actual de InvenTree {v}" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "El complemento requiere al menos la versión {v}" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "El complemento requiere como máximo la versión {v}" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "Habilitar PO" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "Habilitar la funcionalidad PO en la interfaz de InvenTree" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "Clave API" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "Clave necesaria para acceder a la API externa" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Numérico" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "Una configuración numérica" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "Configuración de Elección" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "Un ajuste con múltiples opciones" @@ -7855,35 +7856,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "URL de origen" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Fuente del paquete - puede ser un registro personalizado o una ruta VCS" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "Nombre de Paquete" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Nombre del paquete Plug-in - también puede contener un indicador de versión" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "Confirmar instalación del complemento" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Esto instalará este plug-in en la instancia actual. La instancia entrará en mantenimiento." -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "Instalación no confirmada" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "Debe proporcionar cualquier nombre de paquete de la URL" @@ -7895,40 +7896,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "Activar complemento" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "Activar este complemento" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "No se han proporcionado objetos válidos a la plantilla" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "Informe de la prueba" @@ -7948,103 +7949,103 @@ msgstr "Legal" msgid "Letter" msgstr "Carta" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Nombre de la plantilla" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "Plantilla de informe" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "Descripción de la plantilla de informe" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "Número de revisión del informe (autoincremental)" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "Tamaño de página para reportes PDF" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "Patrón para generar nombres de archivo" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "Plantilla de informe está habilitada" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "Filtros de consulta de Stock (lista separada por comas de pares clave=valor)" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "Incluye Pruebas Instaladas" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "Incluye resultados de prueba para artículos de stock instalados dentro del artículo ensamblado" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "Crear filtros" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "Crear filtros de consulta (lista separada por comas de pares clave=valor" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "Filtros de partes" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "Filtros de búsqueda de partes (lista separada por comas de pares clave=valor" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "Filtros de búsqueda de orden de compra" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "Filtros de búsqueda de pedidos de ventas" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "Filtros de búsqueda de orden de devolución" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "Fragmento" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "Archivo fragmento de informe" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "Descripción de archivo de fragmento" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "Activo" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "Reportar archivo de activos" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "Descripción del archivo de activos" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8085,7 +8086,7 @@ msgstr "Total" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8111,12 +8112,12 @@ msgid "Test Results" msgstr "Resultados de la Prueba" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "Prueba" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "Resultado" @@ -8142,7 +8143,7 @@ msgid "Installed Items" msgstr "Elementos instalados" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Serial" @@ -8151,438 +8152,438 @@ msgstr "Serial" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "ID de Ubicación" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "Nombre de localización" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Ruta de Ubicación" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "ID del artículo de almacén" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "Código de estado" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "ID Parte del Proveedor" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "ID de proveedor" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "Nombre del proveedor" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "ID de cliente" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Instalado en" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "ID de construcción" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "ID de orden de venta" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "ID de orden de compra" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "Revisión necesaria" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "Fecha de Expiración" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "Ubicación externa" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "Desactualizado" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "Cantidad requerida" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "Debe suministrarse una parte válida" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicación de Stock" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Ubicaciones de Stock" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Propietario" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Seleccionar Propietario" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Externo" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "La cantidad debe ser 1 para el artículo con un número de serie" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Número de serie no se puede establecer si la cantidad es mayor que 1" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "El objeto no puede pertenecer a sí mismo" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "El artículo debe tener una referencia de construcción si is_building=True" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "La referencia de la construcción no apunta al mismo objeto de parte" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Artículo de stock padre" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "Parte base" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "Seleccione una parte del proveedor correspondiente para este artículo de stock" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "¿Dónde se encuentra este artículo de stock?" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "Empaquetar este artículo de stock se almacena en" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "¿Está este artículo instalado en otro artículo?" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "Número de serie para este artículo" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "Código de lote para este artículo de stock" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "Cantidad de Stock" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "Build de origen" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "Build para este item de stock" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Consumido por" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "Orden de compra de origen" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "Orden de compra para este artículo de stock" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "Orden de venta de destino" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Fecha de caducidad del artículo de stock. El stock se considerará caducado después de esta fecha" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "Eliminar al agotar" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "Eliminar este artículo de stock cuando se agoten las existencias" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "Precio de compra único en el momento de la compra" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "Convertido a parte" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "La parte no está establecida como rastreable" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "Cantidad debe ser un entero" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "Los números de serie deben ser una lista de enteros" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "La cantidad no coincide con los números de serie" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Números de serie ya existen" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "Artículo de stock ha sido asignado a un pedido de venta" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "Artículo de stock está instalado en otro artículo" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "Artículo de stock contiene otros artículos" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "Artículo de stock ha sido asignado a un cliente" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "El artículo de stock está en producción" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "Stock serializado no puede ser combinado" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "Artículos de Stock Duplicados" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "Los artículos de stock deben referirse a la misma parte" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "Los artículos de stock deben referirse a la misma parte del proveedor" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "Los códigos de estado del stock deben coincidir" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stock no se puede mover porque no está en stock" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "Notas de entrada" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "Debe proporcionarse un valor para esta prueba" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "El archivo adjunto debe ser subido para esta prueba" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "Nombre del test" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "Resultado de la prueba" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "Valor de salida de prueba" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "Adjunto de resultados de prueba" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "Notas de prueba" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "El número de serie es demasiado grande" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "Introduzca el número de artículos de stock para serializar" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "Introduzca números de serie para nuevos artículos" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "Ubicación de stock de destino" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "Campo de nota opcional" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "Los números de serie no se pueden asignar a esta parte" @@ -8598,116 +8599,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "Añadir nota de transacción (opcional)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "La parte debe ser vendible" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "El artículo está asignado a una orden de venta" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "El artículo está asignado a una orden de creación" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "Cliente para asignar artículos de stock" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "La empresa seleccionada no es un cliente" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "Notas de asignación de stock" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "Debe proporcionarse una lista de artículos de stock" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "Notas de fusión de stock" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "Permitir proveedores no coincidentes" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "Permitir fusionar artículos de stock con diferentes partes de proveedor" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "Permitir estado no coincidente" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "Permitir fusionar artículos de stock con diferentes códigos de estado" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "Debe proporcionar al menos dos artículos de stock" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "Valor de clave primaria de Stock" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "Notas de transacción de stock" @@ -8928,7 +8929,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Este ítem expiró el %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "Expirado" @@ -9565,7 +9566,7 @@ msgstr "Tarifa" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Eliminar" @@ -12734,7 +12735,7 @@ msgstr "Tomar" msgid "Add Stock" msgstr "Añadir Stock" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "Añadir" @@ -13373,7 +13374,7 @@ msgstr "Mostrar notificaciones" msgid "New Notifications" msgstr "Notificaciones nuevas" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "Admin" @@ -13546,31 +13547,31 @@ msgstr "Sí" msgid "No" msgstr "No" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Usuarios" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Seleccione qué usuarios están asignados a este grupo" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Información personal" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Permisos" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "Fechas importantes" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13586,15 +13587,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13606,38 +13607,42 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Permiso establecido" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Grupo" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Vista" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Permiso para ver artículos" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Permiso para añadir artículos" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Cambiar" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Permisos para editar artículos" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Permiso para eliminar artículos" + +#, python-format +#~ msgid "The BOM for %(part)s has not been validated." +#~ msgstr "El BOM para %(part)s no ha sido validada." diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po index fc5d82d6d6..53fac3199f 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: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,28 +18,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -48,22 +48,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -75,203 +75,203 @@ msgstr "" msgid "Notes" msgstr "" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -282,72 +282,71 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -363,19 +362,19 @@ msgstr "" msgid "Name" msgstr "" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -400,63 +399,63 @@ msgstr "" msgid "Description" msgstr "" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -464,16 +463,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -481,269 +480,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -855,23 +854,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -883,11 +882,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -895,27 +894,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -923,14 +922,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -944,14 +943,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -981,7 +980,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -997,9 +996,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1027,13 +1026,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1044,7 +1043,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1131,8 +1130,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1141,7 +1140,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1156,7 +1155,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1174,10 +1173,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1198,7 +1197,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1212,8 +1211,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1249,9 +1248,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1265,10 +1264,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1278,7 +1277,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1323,11 +1322,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1339,9 +1338,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1405,8 +1404,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1423,7 +1422,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1431,10 +1430,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1472,9 +1471,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1546,7 +1545,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1582,11 +1581,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1599,7 +1598,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1764,8 +1763,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1802,8 +1801,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1853,7 +1852,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1866,7 +1865,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2022,19 +2021,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2047,1041 +2046,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3093,450 +3092,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3546,76 +3545,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3623,19 +3622,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3646,186 +3645,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3835,12 +3834,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3850,69 +3849,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3925,28 +3924,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3956,27 +3955,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3986,27 +3985,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4068,10 +4067,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4086,7 +4085,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4166,7 +4165,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4189,7 +4188,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4214,7 +4213,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4282,7 +4281,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4331,7 +4330,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4380,8 +4379,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4430,16 +4429,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4472,11 +4471,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4488,7 +4487,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4512,7 +4511,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4520,14 +4519,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4544,7 +4543,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4553,11 +4552,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4571,7 +4570,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4580,192 +4579,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4775,261 +4774,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5041,51 +5040,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5093,24 +5092,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5479,579 +5478,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6063,334 +6062,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6402,299 +6401,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6709,12 +6708,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6826,9 +6824,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7236,7 +7234,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7365,11 +7363,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7377,107 +7375,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7491,11 +7489,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7511,7 +7509,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7519,7 +7517,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7527,19 +7525,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7547,15 +7545,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7568,8 +7566,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7577,49 +7575,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7659,7 +7657,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7675,7 +7673,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7735,113 +7733,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7853,35 +7851,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7893,40 +7891,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7946,103 +7944,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8083,7 +8081,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8109,12 +8107,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8140,7 +8138,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8149,438 +8147,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8596,116 +8594,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8926,7 +8924,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9563,7 +9561,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12732,7 +12730,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13371,7 +13369,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13542,31 +13540,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13582,15 +13580,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13602,38 +13600,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po index 365491718b..d46c908073 100644 --- a/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-21 06:08\n" "Last-Translator: \n" "Language-Team: Persian\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "Address e API peida nashod" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "کاربر سطح دسترسی نمایش این مدل را ندارد" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "مقداری افزوده نشده" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "تعداد افزوده شده اشتباه است" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "جزئیات خطا را می توان در پنل مدیریت پیدا کرد" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "تاریخ را وارد کنید" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "تاریخ را وارد کنید" msgid "Notes" msgstr "یادداشت" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "مقدار '{name}' در قالب الگو ظاهر قرار نمی گیرد" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "مقدار ارائه شده با الگوی مورد نیاز مطابقت ندارد: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "رمز عبور را وارد کنید" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "گذرواژه جدید را وارد کنید" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "تأیید کلمه‌ی عبور" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "گذرواژه جدید را تایید کنید" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "رمز عبور قدیمی" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "ایمیل (دوباره وارد کنید)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "تایید آدرس ایمیل" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "هر بار باید همان ایمیل را تایپ کنید." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "آدرس ایمیل اصلی ارائه شده معتبر نیست." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "دامنه ایمیل ارائه شده تایید نشده است." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "خطا در اتصال" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "سرور با کد وضعیت نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "یک استثنا رخ داده است" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "سرور با مقدار طول محتوا نامعتبر پاسخ داد" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "اندازه عکس بسیار بزرگ است" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "" msgid "Name" msgstr "" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "" msgid "Description" msgstr "" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "فایل‌های داده" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "فایل را برای بارگذاری انتخاب کنید" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "این نوع فایل پشتیبانی نمی‌شود" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "حجم فایل خیلی بزرگ است" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "هیچ ستونی در فایل یافت نشد" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "هیچ ردیف داده ای در فایل یافت نشد" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "هیچ ردیف داده ای ارائه نشده است" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "هیچ ستون داده ای ارائه نشده است" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "ستون مورد نیاز وجود ندارد: \"{name}\"" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "ستون تکراری: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "آدرس فایل تصویری از راه دور" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -854,23 +853,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -894,27 +893,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -922,14 +921,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1140,7 +1139,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1338,9 +1337,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,107 +7374,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7490,11 +7488,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7510,7 +7508,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7518,7 +7516,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7526,19 +7524,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7546,15 +7544,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7567,8 +7565,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7576,49 +7574,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7658,7 +7656,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7674,7 +7672,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7734,113 +7732,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7852,35 +7850,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7892,40 +7890,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7945,103 +7943,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8082,7 +8080,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8108,12 +8106,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8139,7 +8137,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8148,438 +8146,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8595,116 +8593,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8925,7 +8923,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9562,7 +9560,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12731,7 +12729,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13370,7 +13368,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13541,31 +13539,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13581,15 +13579,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13601,38 +13599,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/fi/LC_MESSAGES/django.po b/InvenTree/locale/fi/LC_MESSAGES/django.po index b3383d5743..918344d1b6 100644 --- a/InvenTree/locale/fi/LC_MESSAGES/django.po +++ b/InvenTree/locale/fi/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Finnish\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API-rajapintaa ei löydy" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Käyttäjän oikeudet eivät riitä kohteen tarkastelemiseen" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Arvoa ei annettu" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "Virheen tiedot löytyvät hallintapaneelista" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Anna päivämäärä" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Anna päivämäärä" msgid "Notes" msgstr "Merkinnät" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Anna salasana" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Anna uusi salasana" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Vahvista salasana" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Vahvista uusi salasana" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Vanha salasana" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Sähköposti (uudelleen)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Sähköpostiosoitteen vahvistus" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Sinun täytyy kirjoittaa sama sähköposti joka kerta." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Annettu ensisijainen sähköpostiosoite ei kelpaa." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Annettu määrä on virheellinen" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Tyhjä sarjanumero" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Duplikaatti sarjanumero" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Sarjanumeroita ei löytynyt" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Yhteysvirhe" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Palvelin vastasi virheellisellä tilakoodilla" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Kuva on liian iso" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Kuvan lataus ylitti enimmäiskoon" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Etäpalvelin palautti tyhjän vastauksen" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Annettu URL ei ole kelvollinen kuvatiedosto" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Sähköposti" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Metatietojen tulee olla python dict objekti" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Liitännäisen metadata" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadatakenttä, ulkoisten liitännäisten käyttöön" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Virheellisesti muotoiltu malli" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Viitekenttä ei voi olla tyhjä" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Viitenumero on liian suuri" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Puuttuva tiedosto" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Puuttuva ulkoinen linkki" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Liite" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Valitse liitettävä tiedosto" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Valitse liitettävä tiedosto" msgid "Link" msgstr "Linkki" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Linkki ulkoiseen URLiin" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Kommentti" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Tiedoston kommentti" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Käyttäjä" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "latauspäivä" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Tiedoston nimi ei saa olla tyhjä" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Virheellinen liitteen hakemisto" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Tiedostonimi sisältää kielletyn merkin '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Tiedostonimen pääte puuttuu" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Samanniminen liite on jo olemassa" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Virhe tiedoston uudelleennimeämisessä" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Virheellinen valinta" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Virheellinen valinta" msgid "Name" msgstr "Nimi" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Nimi" msgid "Description" msgstr "Kuvaus" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Kuvaus (valinnainen)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Polku" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Viivakoodin Tiedot" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Palvelinvirhe" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Täytyy olla kelvollinen luku" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuutta" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista" @@ -463,16 +462,16 @@ msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Tiedostonimi" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Virheellinen arvo" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Datatiedosto" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Valitse lähetettävä datatiedosto" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Tiedostotyyppiä ei tueta" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Tiedosto on liian suuri" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Datarivejä ei annettu" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Datasarakkeita ei annettu" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Vaadittu sarake puuttuu: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikaatti sarake: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "Kuvatiedoston URL" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Kuvien lataaminen ei ole käytössä" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "tšekki" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "tanska" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "saksa" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "kreikka" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "englanti" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "espanja" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "espanja (Meksiko)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "farsi / persia" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "suomi" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "ranska" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "heprea" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "unkari" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "italia" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "japani" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "korea" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "hollanti" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "norja" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "puola" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "portugali" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "portugali (Brasilia)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "venäjä" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "slovenia" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "ruotsi" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "thai" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "turkki" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "vietnam" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InvenTree järjestelmän terveystarkastukset epäonnistui" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Odottaa" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Valmis" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Peruttu" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Kadonnut" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Palautettu" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Kesken" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Lähetetty" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Huomiota tarvitaan" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Vahingoittunut" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Tuhottu" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Hylätty" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "Asetettu karanteeniin" @@ -854,23 +853,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -894,27 +893,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Muokkaa käyttäjätietoja" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Aseta salasana" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Salasanat eivät täsmää" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Virheellinen salasana" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Järjestelmän tiedot" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Tietoja InvenTree:stä" @@ -922,14 +921,14 @@ msgstr "Tietoja InvenTree:stä" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1140,7 +1139,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1338,9 +1337,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Sarjanumerot" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Tiedosto" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Valitse lähetettävä tiedosto" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} Tiedosto" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "Päivitetty" msgid "Timestamp of last update" msgstr "Viimeisimmän päivityksen aikaleima" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Ei ryhmää" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Verkkotunnus ei saa olla tyhjä." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Virheellinen verkkotunnus: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Uudelleenkäynnistys vaaditaan" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Yrityksen nimi" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Yrityksen sisäinen nimi" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Oletusvaluutta" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "päivää" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Automaattinen varmuuskopionti" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Ota käyttöön tietokannan ja mediatiedostojen automaattinen varmuuskopiointi" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Automaattisen varmuuskopioinnin aikaväli" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Viivakoodituki" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Komponentti" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Ostettavissa" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Seurattavissa" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Sisäiset hinnat" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Sisäisen hinnan ohitus" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Sivun koko" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Täytä sarjanumerot automaattisesti" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Salli salasananpalautus" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Salli rekisteröinti" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "Salli SSO" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "Salli SSO kirjautumissivuilla" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "Salli SSO rekisteröinti" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Sähköposti vaaditaan" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "Sähköpostiosoite kahdesti" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Salasana kahdesti" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Sallitut verkkotunnukset" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "Pakota MFA" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Näytä uutiset" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Näytä uutiset kotisivulla" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Hinta" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Aktiivinen" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Salaisuus" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Isäntä" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Otsikko" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Julkaistu" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Julkaisija" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Yhteenveto" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "Kuva" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "Kuvatiedosto" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Uusi {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Lataa tiedosto" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "Lataa tiedosto" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "Edellinen vaihe" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Yrityksen kuvaus" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Sivusto" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Yrityksen sivuston URL" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Puhelinnumero" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Kontakti" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "on asiakas" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "on toimittaja" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "on valmistaja" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Yritys" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "Valmistaja" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Valitse valmistaja" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "Valitse valmistaja" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Valmistajan osanumero" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Arvo" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "Toimittaja" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Valitse toimittaja" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Toimittajan varastonimike" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Valitse valmistajan osa" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "Muistiinpano" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "Asiakas" msgid "Uses default currency" msgstr "Käyttää oletusvaluuttaa" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "Yritykset" msgid "New Company" msgstr "Uusi yritys" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Käytössä" @@ -4511,7 +4510,7 @@ msgstr "Korkeus [mm]" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Suodattimet" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "QR-koodi" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "QR-koodi" msgid "Total Price" msgstr "Hinta yhteensä" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "Tilauksen valuutta" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Tilauksen viite" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Asiakkaan viite " -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "Vastaanotettu" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Seurantakoodi" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "Laskunumero" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Viivakoodi" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Hintaa ei löytynyt" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Avainsanat" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Oletus avainsanat" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Kuvake" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Kuvake (valinnainen)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategoria" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "Päivämäärä" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "Muut merkinnät" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "Raportti" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "Valmistajan osanumero" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "Luo raportti" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "Muokkaa" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,113 +7374,113 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No attachments found" msgid "No matching line item found" msgstr "Liitteitä ei löytynyt" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock item created" msgid "Stock item allocated to sales order" msgstr "Varastotuote luotu" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "copy version information" msgid "Not enough information" msgstr "kopioi versiotiedot" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7496,11 +7494,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7516,7 +7514,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7524,7 +7522,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7532,19 +7530,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7552,15 +7550,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7573,8 +7571,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7582,49 +7580,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "Avaa linkki" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7664,7 +7662,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7680,7 +7678,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7740,113 +7738,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "Avain" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Numeerinen" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "Numeerinen asetus" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7858,35 +7856,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7898,40 +7896,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7951,103 +7949,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8088,7 +8086,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8114,12 +8112,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8145,7 +8143,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Sarjanumero" @@ -8154,438 +8152,438 @@ msgstr "Sarjanumero" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8601,116 +8599,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8931,7 +8929,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9568,7 +9566,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Poista" @@ -12737,7 +12735,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13376,7 +13374,7 @@ msgstr "Näytä ilmoitukset" msgid "New Notifications" msgstr "Uudet ilmoitukset" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13547,31 +13545,31 @@ msgstr "Kyllä" msgid "No" msgstr "Ei" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Käyttäjät" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Valitse mitkä käyttäjät on määritetty tähän ryhmään" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Henkilökohtaiset tiedot" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Oikeudet" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13587,15 +13585,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13607,38 +13605,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Ryhmä" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Näytä" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Oikeus tarkastella kohteita" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Oikeus lisätä kohteita" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Muuta" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Oikeus muokata kohteita" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Oikeus poistaa kohteita" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index bca2ece43e..80ec0cf265 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-21 05:01+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2024-01-03 15:34\n" "Last-Translator: \n" "Language-Team: French\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "Point de terminaison de l'API introuvable" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "L'utilisateur n'a pas la permission de voir ce modèle" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Pas de valeur renseignée" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Impossible de convertir {original} en {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Quantité fournie invalide" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Quantité fournie invalide ({exc})" @@ -47,22 +47,22 @@ msgstr "Quantité fournie invalide ({exc})" 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:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Entrer la date" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Entrer la date" msgid "Notes" msgstr "Notes" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "La valeur '{name}' n'apparaît pas dans le format du modèle" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "La valeur fournie ne correspond pas au modèle requis : " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Entrer le mot de passe" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Entrer le nouveau mot de passe" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Confirmez le mot de passe" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Confirmer le nouveau mot de passe" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Ancien mot de passe" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (encore)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Confirmation de l'adresse email" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Vous devez taper le même e-mail à chaque fois." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "L'adresse e-mail principale fournie n'est pas valide." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Le domaine e-mail fourni n'est pas approuvé." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "L'enregistrement est désactivé." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Chaîne de numéro de série vide" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Numéro de série en doublon" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Plage de groupe non valide : {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "La plage de groupe {group} dépasse la quantité autorisée ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Séquence de groupe invalide : {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Aucun numéro de série trouvé" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Le nombre de numéros de série uniques ({len(serials)}) doit correspondre à la quantité ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Retirer les balises HTML de cette valeur" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Erreur de connexion" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Le serveur a répondu avec un code de statut invalide" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Une erreur est survenue" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Le serveur a répondu avec une valeur de longueur de contenu invalide" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Image trop volumineuse" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "La taille de l'image dépasse la taille maximale autorisée" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Le serveur distant a renvoyé une réponse vide" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "L'URL fournie n'est pas un fichier image valide" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Se connecter à l'application" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "E-mail" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Les metadata doivent être un objet python de type \"dict\"" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Métadonnées de l'Extension" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "Champs metadata JSON, pour plugins tiers" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Modèle mal formaté" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Clé de format inconnu spécifiée" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Clé de format requise manquante" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Le champ de référence ne peut pas être vide" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "La référence doit correspondre au modèle requis" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Le numéro de référence est trop grand" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Fichier manquant" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Lien externe manquant" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Pièce jointe" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Sélectionnez un fichier à joindre" msgid "Link" msgstr "Lien" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Lien vers une url externe" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Commentaire" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Commentaire du fichier" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Utilisateur" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "date de chargement" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Le nom de fichier ne doit pas être vide" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Répertoire de pièce jointe invalide" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Le nom de fichier contient le caractère illégal '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Extension manquante du nom de fichier" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Une pièce jointe avec ce nom de fichier existe déjà" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Erreur lors du renommage du fichier" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Choix invalide" msgid "Name" msgstr "Nom" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Nom" msgid "Description" msgstr "Description" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Description (facultative)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "parent" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Chemin d'accès" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Notes Markdown (option)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Données du code-barres" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Données de code-barres tierces" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Hash du code-barre" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Hachage unique des données du code-barres" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Code-barres existant trouvé" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Erreur serveur" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Une erreur a été loguée par le serveur." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Doit être un nombre valide" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Devise" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Sélectionnez la devise à partir des options disponibles" @@ -463,285 +462,289 @@ msgstr "Sélectionnez la devise à partir des options disponibles" msgid "You do not have permission to change this user role." msgstr "Vous n'avez pas la permission de modifier ce rôle utilisateur." -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "Seuls les super-utilisateurs peuvent créer de nouveaux utilisateurs" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "Bienvenue sur {current_site.name}" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format -msgid "Your account has been created.\n\n" +msgid "" +"Your account has been created.\n" +"\n" "Please use the password reset function to get access (at https://{domain})." -msgstr "Votre compte a été créé.\n\n" +msgstr "" +"Votre compte a été créé.\n" +"\n" "Veuillez utiliser la fonction de réinitialisation du mot de passe pour avoir accès (à https://{domain})." -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Nom du fichier" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Valeur non valide" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Fichier de données" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Sélectionnez le fichier de données à envoyer" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Format de fichier non supporté" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Fichier trop volumineux" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Pas de colonnes trouvées dans le fichier" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Par de lignes de données trouvées dans le fichier" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Pas de lignes de données fournies" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Pas de colonne de données fournie" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Colonne requise manquante : {name}" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Colonne duliquée : '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL du fichier image distant" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 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:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "Bulgare" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Tchèque" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Danois" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Allemand" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Grec" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Anglais" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Espagnol" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Espagnol (Mexique)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Perse" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Finnois" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Français" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hébreu" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Hindi" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Hongrois" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italien" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japonais" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Coréen" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Néerlandais" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norvégien" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polonais" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugais" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugais (Brésilien)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Russe" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Slovénien" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Suédois" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Thaïlandais" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turc" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamien" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Chinois (Simplifié)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Chinois (Traditionnel)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Échec de la vérification du processus d'arrière-plan" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Backend d'email non configuré" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Échec des contrôles de santé du système" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "En attente" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Placé" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Terminé" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Annulé" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Perdu" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Retourné" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "En Cours" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Expédié" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Attention requise" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Endommagé" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Détruit" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Rejeté" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "En quarantaine" @@ -853,23 +856,23 @@ msgstr "Retourné par le client" msgid "Production" msgstr "Fabrication" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Retour" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Réparer" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Remplacer" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Remboursement" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Refuser" @@ -881,11 +884,11 @@ msgstr "Unité invalide" msgid "Not a valid currency code" msgstr "Code de devise invalide" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "La valeur de surplus ne doit pas être négative" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Le surplus ne doit pas dépasser 100%" @@ -893,27 +896,27 @@ msgstr "Le surplus ne doit pas dépasser 100%" msgid "Invalid value for overage" msgstr "Valeur invalide pour le dépassement" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Modifier les informations utilisateur" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Définir le mot de passe" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Les mots de passe doivent correspondre" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Mot de passe incorrect" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Informations système" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "À propos d'InvenTree" @@ -921,14 +924,14 @@ msgstr "À propos d'InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La construction doit être annulée avant de pouvoir être supprimée" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Consommable" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -942,14 +945,14 @@ msgstr "Facultatif" msgid "Tracked" msgstr "Suivi" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Allouée" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -979,7 +982,7 @@ msgstr "Ordre de Fabrication" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Ordres de Fabrication" @@ -995,9 +998,9 @@ msgstr "La pièce de commande de construction ne peut pas être changée" msgid "Build Order Reference" msgstr "Référence de l' Ordre de Fabrication" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1025,13 +1028,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "BuildOrder associé a cette fabrication" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1042,7 +1045,7 @@ msgstr "BuildOrder associé a cette fabrication" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1129,8 +1132,8 @@ msgstr "État de la construction" msgid "Build status code" msgstr "Code de statut de construction" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Code de lot" @@ -1139,7 +1142,7 @@ msgstr "Code de lot" msgid "Batch code for this build output" msgstr "Code de lot pour ce build output" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1154,7 +1157,7 @@ msgstr "Date d'achèvement cible" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Date d'achèvement" @@ -1172,10 +1175,10 @@ msgid "User who issued this build order" msgstr "Utilisateur ayant émis cette commande de construction" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1196,7 +1199,7 @@ msgstr "Utilisateur ou groupe responsable de cet ordre de construction" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1210,8 +1213,8 @@ msgstr "Priorité de fabrication" msgid "Priority of this build order" msgstr "Priorité de cet ordre de fabrication" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1247,9 +1250,9 @@ msgid "Build output does not match Build Order" msgstr "L'ordre de production de correspond pas à l'ordre de commande" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" @@ -1263,10 +1266,10 @@ msgstr "Création de l'objet" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1276,7 +1279,7 @@ msgstr "Création de l'objet" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1321,11 +1324,11 @@ msgstr "L'élément de construction doit spécifier une sortie de construction, msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" @@ -1337,9 +1340,9 @@ msgstr "La quantité doit être de 1 pour stock sérialisé" msgid "Selected stock item does not match BOM line" msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1403,8 +1406,8 @@ msgstr "Quantité entière requise pour les pièces à suivre" 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:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Numéros de série" @@ -1421,7 +1424,7 @@ msgstr "Allouer automatiquement les numéros de série" 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:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "Les numéros de série suivants existent déjà, ou sont invalides" @@ -1429,10 +1432,10 @@ msgstr "Les numéros de série suivants existent déjà, ou sont invalides" msgid "A list of build outputs must be provided" msgstr "Une liste d'ordre de production doit être fourni" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1470,9 +1473,9 @@ msgid "Location for completed build outputs" msgstr "Emplacement des ordres de production achevés" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1544,7 +1547,7 @@ msgstr "Accepter les articles de stock qui n'ont pas été complètement alloué msgid "Required stock has not been fully allocated" msgstr "Le stock requis n'a pas encore été totalement alloué" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Accepter les incomplèts" @@ -1580,11 +1583,11 @@ msgstr "" 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:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "L'article doit être en stock" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantité disponible ({q}) dépassée" @@ -1597,7 +1600,7 @@ msgstr "La sortie de construction doit être spécifiée pour l'allocation des p msgid "Build output cannot be specified for allocation of untracked parts" msgstr "La sortie de la construction ne peut pas être spécifiée pour l'allocation des pièces non suivies" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Les articles d'allocation doivent être fournis" @@ -1762,8 +1765,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1800,8 +1803,8 @@ msgid "Completed Outputs" msgstr "Sorties de Construction terminées" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1851,7 +1854,7 @@ msgstr "Stock d'origine" msgid "Stock can be taken from any available location." msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destination" @@ -1864,7 +1867,7 @@ msgstr "Stockage de destination non défini" msgid "Allocated Parts" msgstr "Pièces allouées" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2020,19 +2023,19 @@ msgstr "Erreur de lecture du fichier (dimension incorrecte)" msgid "Error reading file (data could be corrupted)" msgstr "Erreur de lecture du fichier (les données pourraient être corrompues)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Fichier" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Sélectionner un fichier à téléverser" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} Fichier" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "Sélectionner le fichier {name} à uploader" @@ -2045,1041 +2048,1041 @@ msgstr "Mise à jour" msgid "Timestamp of last update" msgstr "Date de la dernière mise à jour" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Code projet unique" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Description du projet" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "Utilisateur ou groupe responsable de ce projet" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "Valeur du paramètre" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "La valeur choisie n'est pas une option valide" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "La valeur doit être une valeur booléenne" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "La valeur doit être un nombre entier" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "La chaîne de caractères constituant la clé doit être unique" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Pas de groupe" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Un domaine vide n'est pas autorisé." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nom de domaine invalide : {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "Pas de plugin" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Redémarrage nécessaire" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "Un paramètre a été modifié, ce qui nécessite un redémarrage du serveur" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "Migration en attente" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "Nombre de migrations de base de données en attente" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "Nom de l'instance du serveur" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "Chaîne de caractères descriptive pour l'instance serveur" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Utiliser le nom de l'instance" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "Utiliser le nom de l’instance dans la barre de titre" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "Limiter l'affichage de `about`" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "Afficher la modale `about` uniquement aux super-utilisateurs" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Nom de la société" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Nom de société interne" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "URL de base" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "URL de base pour l'instance serveur" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Devise par défaut" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "Sélectionnez la devise de base pour les calculs de prix" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "Intervalle de mise à jour des devises" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Fréquence de mise à jour des taux de change (définir à zéro pour désactiver)" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "jours" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "Plugin de mise à jour de devise" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "Plugin de mise à jour des devises à utiliser" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Télécharger depuis l'URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Autoriser le téléchargement d'images distantes et de fichiers à partir d'URLs externes" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Limite du volume de téléchargement" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Taille maximale autorisée pour le téléchargement de l'image distante" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "Agent utilisateur utilisé pour télécharger depuis l'URL" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Permettre de remplacer l'agent utilisateur utilisé pour télécharger des images et des fichiers à partir d'URL externe (laisser vide pour la valeur par défaut)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "Validation stricte d'URL" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Confirmation requise" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Exiger une confirmation explicite de l’utilisateur pour certaines actions." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Profondeur de l'arborescence" -#: common/models.py:1194 +#: common/models.py:1269 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:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Intervalle de vérification des mises à jour" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "À quelle fréquence vérifier les mises à jour (définir à zéro pour désactiver)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Backup automatique" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Activer le backup automatique de la base de données et des fichiers médias" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Intervalle de sauvegarde automatique" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Spécifiez le nombre de jours entre les sauvegardes automatique" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "Intervalle de suppression des tâches" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "Les résultats de la tâche en arrière-plan seront supprimés après le nombre de jours spécifié" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "Intervalle de suppression du journal d'erreur" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "Les logs d'erreur seront supprimés après le nombre de jours spécifié" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "Intervalle de suppression du journal de notification" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Les notifications de l'utilisateur seront supprimées après le nombre de jours spécifié" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Support des code-barres" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "Activer le support du scanner de codes-barres dans l'interface web" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Délai d'entrée du code-barres" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Délai de traitement du code-barres" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Prise en charge de la webcam code-barres" -#: common/models.py:1284 +#: common/models.py:1336 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:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "Modifications de la pièce" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "Activer le champ de modification de la pièce" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:1298 +#: common/models.py:1348 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:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Autoriser les IPN dupliqués" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "Permettre à plusieurs pièces de partager le même IPN" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Autoriser l'édition de l'IPN" -#: common/models.py:1310 +#: common/models.py:1358 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:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Copier les données de la pièce" -#: common/models.py:1317 +#: common/models.py:1364 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:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "Copier les données des paramètres de la pièce" -#: common/models.py:1324 +#: common/models.py:1370 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:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "Copier les données de test de la pièce" -#: common/models.py:1331 +#: common/models.py:1376 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:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Copier les templates de paramètres de catégorie" -#: common/models.py:1338 +#: common/models.py:1382 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:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Modèle" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Les pièces sont des templates par défaut" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Assemblage" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Composant" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "Les pièces peuvent être utilisées comme sous-composants par défaut" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Achetable" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Les pièces sont achetables par défaut" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Vendable" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Les pièces sont vendables par défaut" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Traçable" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Les pièces sont traçables par défaut" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Les pièces sont virtuelles par défaut" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Afficher l'import dans les vues" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "Afficher l'assistant d'importation pour certaine vues de produits" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Afficher les pièces connexes" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Afficher les pièces connexes à une pièce" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Stock initial" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Permettre la création d'un stock initial lors de l'ajout d'une nouvelle pièce" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Données initiales du fournisseur" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Permettre la création des données initiales du fournisseur lors de l'ajout d'une nouvelle pièce" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Format d'affichage du nom de la pièce" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Format pour afficher le nom de la pièce" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Icône de catégorie par défaut" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Icône par défaut de la catégorie de la pièce (vide signifie aucune icône)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Utiliser le prix fournisseur" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Inclure les réductions de prix dans le calcul du prix global" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Remplacer l'historique des achats" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "La tarification historique des bons de commande remplace les réductions de prix des fournisseurs" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "Utiliser les prix des articles en stock" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Utiliser les prix des données de stock saisies manuellement pour calculer les prix" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "Âge de tarification des articles de stock" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Exclure les articles en stock datant de plus de ce nombre de jours des calculs de prix" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "Utiliser les prix variants" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "Inclure la tarification variante dans le calcul global des prix" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "Variantes actives uniquement" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "N'utiliser que des pièces de variante actives pour calculer le prix de la variante" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "Intervalle de regénération des prix" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "Nombre de jours avant la mise à jour automatique du prix de la pièce" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Prix internes" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "Activer les prix internes pour les pièces" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Substitution du prix interne" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "Si disponible, les prix internes remplacent les calculs de la fourchette de prix" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Activer l'impression d'étiquettes" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Activer l'impression d'étiquettes depuis l'interface Web" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "Étiquette image DPI" -#: common/models.py:1543 +#: common/models.py:1569 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:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Activer les rapports" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Activer la génération de rapports" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Mode Débogage" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Générer des rapports en mode debug (sortie HTML)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Taille de la page" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Taille de page par défaut pour les rapports PDF" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Activer les rapports de test" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Activer la génération de rapports de test" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Joindre des rapports de test" -#: common/models.py:1581 +#: common/models.py:1601 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:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "Numéro de Série Universellement Unique" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "Les numéros de série pour les articles en stock doivent être uniques au niveau global" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Remplir automatiquement les Numéros de Série" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Remplir automatiquement les numéros de série dans les formulaires" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Supprimer le stock épuisé" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Détermine le comportement par défaut lorsqu'un article de stock est épuisé" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "Modèle de code de lot" -#: common/models.py:1609 +#: common/models.py:1629 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:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "Expiration du stock" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "Activer la fonctionnalité d'expiration du stock" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "Vendre le stock expiré" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "Autoriser la vente de stock expiré" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "Délai de péremption du stock" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "Nombre de jours pendant lesquels les articles en stock sont considérés comme périmés avant d'expirer" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "Construction de stock expirée" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "Autoriser la construction avec un stock expiré" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "Contrôle de la propriété des stocks" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "Activer le contrôle de la propriété sur les emplacements de stock et les articles" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "Icône par défaut de l'emplacement du stock" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "Icône par défaut de l'emplacement du stock (vide signifie aucune icône)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "Afficher les pièces en stock installées" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "Modèle de référence de commande de construction" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "Modèle requis pour générer le champ de référence de l'ordre de construction" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "Activer les retours de commandes" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "Activer la fonctionnalité de retour de commande dans l'interface utilisateur" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "Modèle de référence de retour de commande" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "Modèle requis pour générer le champ de référence du retour de commande" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "Modifier les retours de commandes terminées" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "Autoriser la modification des retours après leur enregistrement" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "Modèle de référence de bon de commande" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "Modèle requis pour générer le champ de référence du bon de commande" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "Expédition par défaut du bon de commande" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "Activer la création d'expédition par défaut avec les bons de commandes" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "Modifier les commandes de vente terminées" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Autoriser la modification des commandes de vente après avoir été expédiées ou complétées" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "Modèle de référence de commande d'achat" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modèle requis pour générer le champ de référence de bon de commande" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "Modifier les bons de commande terminés" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Autoriser la modification des bons de commande après avoir été expédiés ou complétés" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Activer les mots de passe oubliés" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Activer la fonction \"Mot de passe oublié\" sur les pages de connexion" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Activer les inscriptions" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "Activer l'auto-inscription pour les utilisateurs sur les pages de connexion" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "Activer le SSO" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "Activer le SSO sur les pages de connexion" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "Activer l'inscription SSO" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Activer l'auto-inscription via SSO pour les utilisateurs sur les pages de connexion" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Email requis" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "Exiger que l'utilisateur fournisse un mail lors de l'inscription" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "Saisie automatique des utilisateurs SSO" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "Remplir automatiquement les détails de l'utilisateur à partir des données de compte SSO" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "Courriel en double" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mail" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Mot de passe deux fois" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mot de passe" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Domaines autorisés" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Grouper sur inscription" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "Groupe auquel les nouveaux utilisateurs sont assignés lors de l'inscription" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "Forcer l'authentification multifacteurs" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Les utilisateurs doivent utiliser l'authentification multifacteurs." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Vérifier les plugins au démarrage" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Vérifier que tous les plugins sont installés au démarrage - activer dans les environnements conteneurs" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "Activer l'intégration d'URL" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "Autoriser les plugins à ajouter des chemins URL" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "Activer l'intégration de navigation" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "Activer les plugins à s'intégrer dans la navigation" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "Activer l'intégration de plugins" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "Activer l'intégration de plugin pour ajouter des apps" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "Activer l'intégration du planning" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "Autoriser les plugins à éxécuter des tâches planifiées" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "Activer l'intégration des évènements" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "Autoriser les plugins à répondre aux évènements internes" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "Activer les codes projet" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "Fonctionnalité d'inventaire" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Activer la fonctionnalité d'inventaire pour enregistrer les niveaux de stock et le calcul de la valeur du stock" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "Période de l'inventaire automatique" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Nombre de jours entre l'enregistrement automatique des stocks (définir à zéro pour désactiver)" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Les rapports d'inventaire seront supprimés après le nombre de jours spécifié" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Afficher les composants suivis" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Afficher les composants suivis sur l'écran d'accueil" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Afficher les catégories suivies" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Afficher les catégories de pièces suivies sur la page d'accueil" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Afficher les derniers composants sur la page d'accueil" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Afficher les listes de matériaux non validées" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "Afficher les listes de matériaux en attente de validation sur la page d'accueil" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "Afficher les articles de stock récemment modifiés sur la page d'accueil" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Afficher le stock faible" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Afficher les articles en stock bas sur la page d'accueil" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Afficher le stock épuisé" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Afficher les stocks épuisés sur la page d'accueil" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Afficher le stock nécessaire" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "Afficher les pièces en stock nécessaires pour les assemblages sur la page d'accueil" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Afficher le stock expiré" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Afficher les pièces en stock expirées sur la page d'accueil" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Afficher le stock périmé" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Afficher les articles de stock périmés sur la page d'accueil" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Afficher les constructions en attente" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Afficher les constructions en attente sur la page d'accueil" @@ -3091,450 +3094,450 @@ msgstr "Afficher les constructions en retard" msgid "Show overdue builds on the homepage" msgstr "Afficher les constructions en retard sur la page d'accueil" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "Afficher les commandes en suspens" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "Afficher les commandes en suspens sur la page d'accueil" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "Afficher les commandes en retard" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "Afficher les commandes en retard sur la page d'accueil" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "Afficher les envois en suspens" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "Afficher les envois en suspens sur la page d'accueil" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "Afficher les envois en retard" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "Afficher les envois en retard sur la page d'accueil" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Afficher les nouvelles" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Afficher les nouvelles sur la page d'accueil" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "Affichage du libellé en ligne" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Afficher les étiquettes PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "Imprimante d'étiquettes par défaut" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "Configurer quelle imprimante d'étiquette doit être sélectionnée par défaut" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "Affichage du rapport en ligne" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Afficher les rapports PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Rechercher de pièces" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "Afficher les pièces dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "Afficher les pièces du fournisseur dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Rechercher les pièces du fabricant" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "Afficher les pièces du fabricant dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Masquer les pièces inactives" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "Exclure les pièces inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "Rechercher des catégories" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "Afficher les catégories de pièces dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "Rechercher dans le stock" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "Afficher les pièces en stock dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "Cacher les pièces indisponibles" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "Exclure les articles en stock qui ne sont pas disponibles de la fenêtre de prévisualisation de recherche" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "Chercher des Emplacements" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "Afficher les emplacements dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "Rechercher les entreprises" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "Afficher les entreprises dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Rechercher les commandes de construction" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "Afficher les commandes de construction dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "Rechercher des bons de commande" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "Exclure les bons de commande inactifs" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "Exclure les commandes d’achat inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Rechercher les bons de commande" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "Exclure les bons de commande inactives" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "Exclure les bons de commande inactifs de la fenêtre de prévisualisation de recherche" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Rechercher les commandes retournées" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "Résultats de l'aperçu de la recherche" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "Nombre de résultats à afficher dans chaque section de la fenêtre de prévisualisation de recherche" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "Recherche Regex" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Afficher la quantité dans les formulaires" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "Afficher la quantité disponible dans certains formulaires" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "La touche Echap ferme les formulaires" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "Utilisez la touche Echap pour fermer les formulaires modaux" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Barre de navigation fixe" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "La position de la barre de navigation est fixée en haut de l'écran" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Format de date" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Format préféré pour l'affichage des dates" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planification des pièces" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Afficher les informations de planification des pièces" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventaire des pièces" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "Longueur de la chaîne dans les Tableau" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Prix" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Actif" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "Ce webhook (lien de rappel HTTP) est-il actif" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "Jeton" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "Jeton d'accès" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Confidentiel" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "ID message" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "Identifiant unique pour ce message" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Hôte" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "Hôte à partir duquel ce message a été reçu" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Entête" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "En-tête de ce message" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Corps" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "Corps de ce message" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "Endpoint à partir duquel ce message a été reçu" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "Le travail sur ce message est-il terminé ?" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "Id" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titre" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Publié" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Auteur" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Résumé" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "Lu" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "Cette nouvelle a-t-elle été lue ?" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3544,76 +3547,76 @@ msgstr "Cette nouvelle a-t-elle été lue ?" msgid "Image" msgstr "Image" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Définition" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Nouveau {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "Une nouvelle commande a été créée et vous a été assignée" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "Articles reçus" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "Des articles d'un bon de commande ont été reçus" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "Erreur déclenchée par le plugin" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Transférer un fichier" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3621,19 +3624,19 @@ msgstr "Transférer un fichier" msgid "Match Fields" msgstr "Champs Correspondants" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "Articles correspondants" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "Les champs correspondants ont échoué" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Pièces importées" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3644,186 +3647,186 @@ msgstr "Pièces importées" msgid "Previous Step" msgstr "Étape précédente" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Description de la société" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "Description de la société" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Site web" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Site Web de la société" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Numéro de téléphone" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Numéro de téléphone de contact" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Adresse e-mail de contact" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Contact" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Point de contact" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Lien externe vers les informations de l'entreprise" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "est client" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Vendez-vous des objets à cette entreprise?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "est fournisseur" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Est-ce que vous achetez des articles à cette entreprise?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "est fabricant" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Cette entreprise fabrique-t-elle des pièces?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Devise par défaut utilisée pour cette entreprise" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Société" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "Sélectionner une entreprise" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "Sélectionner comme adresse principale" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "Ligne 1" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "Adresse" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "Ligne 2" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "Seconde ligne d'adresse" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "Code postal" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "Ville / Région" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "Code postal Ville / Région" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "État / Province" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "État ou province" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "Pays" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "Pays" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "Notes du livreur" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "Instructions pour le livreur" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "Notes pour la livraison interne" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "Notes internes pour la livraison" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3833,12 +3836,12 @@ msgstr "" msgid "Manufacturer" msgstr "Fabricant" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Sélectionner un fabricant" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3848,69 +3851,69 @@ msgstr "Sélectionner un fabricant" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Pièces du fabricant" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Nom du paramètre" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Valeur" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Valeur du paramètre" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Unités" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Unités du paramètre" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "La pièce du fabricant liée doit faire référence à la même pièce de base" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3923,28 +3926,28 @@ msgstr "La pièce du fabricant liée doit faire référence à la même pièce d msgid "Supplier" msgstr "Fournisseur" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Sélectionner un fournisseur" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Unité de gestion des stocks des fournisseurs" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Sélectionner un fabricant" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "Lien de la pièce du fournisseur externe" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "Description de la pièce du fournisseur" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3954,27 +3957,27 @@ msgstr "Description de la pièce du fournisseur" msgid "Note" msgstr "Note" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "coût de base" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "Frais minimums (par exemple frais de stock)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Conditionnement" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "Conditionnement de l'article" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3984,27 +3987,27 @@ msgstr "Conditionnement de l'article" msgid "Pack Quantity" msgstr "Nombre de paquet" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "plusieurs" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "Commande multiple" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "Quantité disponible auprès du fournisseur" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "Disponibilité mise à jour" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "Date de dernière mise à jour des données de disponibilité" @@ -4066,10 +4069,10 @@ msgstr "Télécharger l'image depuis l'URL" msgid "Delete image" msgstr "Supprimer image" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4084,7 +4087,7 @@ msgstr "Client" msgid "Uses default currency" msgstr "Utiliser la devise par défaut" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4164,7 +4167,7 @@ msgstr "Stock fournisseur" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Bons de commande" @@ -4187,7 +4190,7 @@ msgstr "Nouvelle commande achat" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Ventes" @@ -4212,7 +4215,7 @@ msgstr "Stock affecté" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4280,7 +4283,7 @@ msgstr "Aucune information sur le fabricant disponible" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Fournisseurs" @@ -4329,7 +4332,7 @@ msgid "Addresses" msgstr "Adresses" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4378,8 +4381,8 @@ msgstr "Supprimer la pièce du fournisseur" msgid "No supplier information available" msgstr "Aucune information de fournisseur disponible" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4428,16 +4431,16 @@ msgstr "Lier le code-barres à la pièce du fournisseur" msgid "Update Part Availability" msgstr "Mettre à jour la disponibilité des pièces" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Éléments en stock" @@ -4470,11 +4473,11 @@ msgstr "Entreprises" msgid "New Company" msgstr "Nouvelle Entreprise" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Nom de l'étiquette" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Description de l’étiquette" @@ -4486,7 +4489,7 @@ msgstr "Étiquette" msgid "Label template file" msgstr "Fichier de modèle d'étiquette" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Activé" @@ -4510,7 +4513,7 @@ msgstr "Hauteur [mm]" msgid "Label height, specified in mm" msgstr "Hauteur de l'étiquette, spécifiée en mm" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Modèle de nom de fichier" @@ -4518,14 +4521,14 @@ msgstr "Modèle de nom de fichier" msgid "Pattern for generating label filenames" msgstr "Modèle pour la génération des noms de fichiers d'étiquette" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Filtres" @@ -4542,7 +4545,7 @@ msgstr "QR Code" msgid "QR code" msgstr "QR code" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4551,11 +4554,11 @@ msgstr "QR code" msgid "Total Price" msgstr "Prix Total" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "Aucun bon de commande correspondant n'a été trouvé" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4569,7 +4572,7 @@ msgstr "Aucun bon de commande correspondant n'a été trouvé" msgid "Purchase Order" msgstr "Commande d’achat" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4578,192 +4581,192 @@ msgstr "Commande d’achat" msgid "Return Order" msgstr "Retour de commande" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Inconnu" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "Prix total pour cette commande" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "Devise de la commande" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Lien vers une page externe" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Date prévue pour la livraison de la commande. La commande sera en retard après cette date." -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Créé par" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Utilisateur ou groupe responsable de cette commande" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Référence de la commande" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Statut de la commande d'achat" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Société de laquelle les articles sont commandés" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "Référence du fournisseur" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "Code de référence de la commande fournisseur" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "reçu par" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Date d'émission" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Date d'émission de la commande" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "Date à laquelle la commande a été complété" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "La quantité doit être un nombre positif" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Société à laquelle les articles sont vendus" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Référence client " -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Nom de l’expédition" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "expédié par" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "La commande ne peut pas être terminée car aucune pièce n'a été assignée" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "La commande ne peut pas être terminée car il y a des envois incomplets" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Nombre d'élement" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Contexte" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "Prix unitaire" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "supprimé" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Commande" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "Pièce fournisseur" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4773,261 +4776,261 @@ msgstr "Pièce fournisseur" msgid "Received" msgstr "Reçu" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "Nombre d'éléments reçus" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Prix d'achat" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Prix d'achat unitaire" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "Où l'Acheteur veut-il stocker cet article ?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "La pièce virtuelle ne peut pas être affectée à une commande" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "Seules les pièces vendues peuvent être attribuées à une commande" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prix de vente" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Prix de vente unitaire" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Quantité expédiée" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Date d'expédition" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Vérifié par" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Utilisateur qui a vérifié cet envoi" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Envoi" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Numéro d'expédition" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "N° de suivi" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Information de suivi des colis" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "N° de facture" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "Numéro de référence de la facture associée" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "Le colis a déjà été envoyé" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "L'expédition n'a pas d'articles en stock alloués" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "L'article de stock n'a pas été assigné" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "Impossible d'allouer le stock à une ligne sans pièce" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Ligne" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Article" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "Statut du retour de commande" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "La commande ne peut pas être annulée" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "La commande n'est pas ouverte" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Devise du prix d'achat" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Entrez les numéros de série pour les articles de stock entrants" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Code-barres" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "Le code-barres est déjà utilisé" -#: order/serializers.py:579 +#: order/serializers.py:586 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:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5039,51 +5042,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Entrez les numéros de série à allouer" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 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:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "Les numéros de série suivants sont déjà alloués" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5091,24 +5094,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5477,579 +5480,579 @@ msgstr "Nouvelle Expédition" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Prix introuvable" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "ID de composant" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Nom de l'article" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Révision" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Mots-clés" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Stock Minimum" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "En Stock" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "En Commande" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Pièces" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Prix Minimum" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Prix Maximum" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Catégorie de composant" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Catégories de composants" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Nom de l'article" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Catégorie" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Catégorie de la pièce" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6061,334 +6064,334 @@ msgstr "" msgid "Date" msgstr "Date" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "Notes additionnelles" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Requis" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Valeur requise" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "Données" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valeur par Défaut" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "Article du BOM" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Surplus" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Validée" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Devise d'achat de l'item" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6400,299 +6403,299 @@ msgstr "" msgid "Copy Image" msgstr "Copier l'image" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Copier les paramètres" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6707,12 +6710,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6824,9 +6826,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "Prise d'inventaire" @@ -7234,7 +7236,7 @@ msgstr "" msgid "Edit" msgstr "Modifier" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7363,11 +7365,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Base de données inconnue" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7375,107 +7377,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Aucune action spécifiée" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Aucune action correspondante trouvée" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Aucune correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Correspondance trouvée pour les données du code-barres" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7489,11 +7491,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7509,7 +7511,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7517,7 +7519,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7525,19 +7527,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7545,15 +7547,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7566,8 +7568,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7575,49 +7577,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "Contributeurs d'InvenTree" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "Notifications InvenTree" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7657,7 +7659,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7673,7 +7675,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7733,113 +7735,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "Non du Plugin" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "Extension Intégrée" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Extension" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Numérique" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7851,35 +7853,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7891,40 +7893,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "Aucun objet valide n'a été fourni au modèle" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7944,103 +7946,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Nom du modèle" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "Filtres de composants" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "Extrait " -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "Elément" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8081,7 +8083,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8107,12 +8109,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "Résultat" @@ -8138,7 +8140,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Numéro de série" @@ -8147,438 +8149,438 @@ msgstr "Numéro de série" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Propriétaire" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Sélectionner un propriétaire" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 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:645 +#: stock/models.py:677 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:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "Numéro de série pour cet article" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 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:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "La quantité ne correspond pas au nombre de numéros de série" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Les numéros de série existent déjà" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "Entrez le nombre d'articles en stock à sérialiser" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "Entrez les numéros de série pour les nouveaux articles" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 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" @@ -8594,116 +8596,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8924,7 +8926,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9561,7 +9563,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Supprimer" @@ -12730,7 +12732,7 @@ msgstr "Supprimer" msgid "Add Stock" msgstr "Ajouter du stock" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "Ajouter" @@ -13369,7 +13371,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13459,7 +13461,8 @@ msgstr "" #: templates/socialaccount/signup.html:10 #, python-format -msgid "You are about to use your %(provider_name)s account to login to\n" +msgid "" +"You are about to use your %(provider_name)s account to login to\n" "%(site_name)s.
As a final step, please complete the following form:" msgstr "" @@ -13539,31 +13542,31 @@ msgstr "Oui" msgid "No" msgstr "Non" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Utilisateurs" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Sélectionner quels utilisateurs sont assignés à ce groupe" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Informations personnelles" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Droits" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "Dates importantes" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13579,15 +13582,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13599,39 +13602,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Droit défini" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Groupe" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Vue" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Droit de voir des éléments" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Droit d'ajouter des éléments" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Modifier" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Droit de modifier des élément" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Droit de supprimer des éléments" - diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 8ee8344bbf..247e46dea4 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Hebrew\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "הזן תאריך סיום" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "הזן תאריך סיום" msgid "Notes" msgstr "" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "הכנס סיסמה" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "הכנס סיסמה חדשה" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "אישור סיסמה" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "אשר סיסמה חדשה" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "אימייל (שנית)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "אישור כתובת אימייל" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "חובה לרשום את אותו אימייל בכל פעם." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "מספרים סידוריים לא נמצאו" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "קובץ חסר" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "קובץ מצורף" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "בחר קובץ לצירוף" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "בחר קובץ לצירוף" msgid "Link" msgstr "קישור" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "קישור חיצוני" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "הערה" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "הערת קובץ" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "משתמש" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "תאריך העלאה" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "חובה למלא שם קובץ" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "תיקיית קובץ שגויה" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "שם הקובץ מכיל תו '{c}' שאינו חוקי" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "שגיאה בשינוי שם פריט" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "בחירה שגויה" msgid "Name" msgstr "שם" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "שם" msgid "Description" msgstr "תיאור" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "תיאור (לא חובה)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "מקור" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "שם קובץ" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "גרמנית" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "יוונית" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "אנגלית" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "ספרדית" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "ספרדית (מקסיקנית)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "צרפתית" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "עברית" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "איטלקית" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "יפנית" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "קוריאנית" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "הולנדית" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "נורווגית" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "פולנית" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "רוסית" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "שוודית" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "תאילנדית" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "טורקית" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "ווייטנאמית" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "בהמתנה" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "מוקם" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "הושלם" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "מבוטל" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "אבד" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "הוחזר" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "נשלח" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "מצב טוב" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "דרושה תשומת לב" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "פגום" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "הרוס" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "נדחה" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -854,23 +853,23 @@ msgstr "הוחזר מלקוח" msgid "Production" msgstr "ייצור" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "קוד מטבע לא מאושר" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -894,27 +893,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "ערוך מידע אודות המשתמש" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "הגדר סיסמא" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "הסיסמאות מוכרחות להיות תואמות" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "מידע אודות המערכת" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -922,14 +921,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1140,7 +1139,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1338,9 +1337,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "מספרים סידוריים" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,113 +7374,113 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "לא פורטה הפעולה" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "פעולה מבוקשת לא נמצאה" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "No matching action found" msgid "Multiple matching line items found" msgstr "פעולה מבוקשת לא נמצאה" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching action found" msgid "No matching line item found" msgstr "פעולה מבוקשת לא נמצאה" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "Edit User Information" msgid "Not enough information" msgstr "ערוך מידע אודות המשתמש" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7496,11 +7494,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7516,7 +7514,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7524,7 +7522,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7532,19 +7530,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7552,15 +7550,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7573,8 +7571,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7582,49 +7580,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7664,7 +7662,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7680,7 +7678,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7740,113 +7738,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7858,35 +7856,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7898,40 +7896,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7951,103 +7949,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8088,7 +8086,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8114,12 +8112,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8145,7 +8143,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8154,438 +8152,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8601,116 +8599,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8931,7 +8929,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9568,7 +9566,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12737,7 +12735,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13376,7 +13374,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13547,31 +13545,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13587,15 +13585,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13607,38 +13605,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/hi/LC_MESSAGES/django.po b/InvenTree/locale/hi/LC_MESSAGES/django.po index 257b0216df..03755d9f04 100644 --- a/InvenTree/locale/hi/LC_MESSAGES/django.po +++ b/InvenTree/locale/hi/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:46\n" "Last-Translator: \n" "Language-Team: Hindi\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "तारीख दर्ज करें" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "तारीख दर्ज करें" msgid "Notes" msgstr "" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "पास वर्ड दर्ज करें" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "नया पासवर्ड दर्ज करें" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "पासवर्ड की पुष्टि करें" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "नए पासवर्ड की पुष्टि करें" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "पुराना पासवर्ड" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "कनेक्शन त्रुटि" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "ई-मेल" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "" msgid "Name" msgstr "" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "" msgid "Description" msgstr "" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -854,23 +853,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -894,27 +893,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -922,14 +921,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1140,7 +1139,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1338,9 +1337,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,107 +7374,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7490,11 +7488,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7510,7 +7508,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7518,7 +7516,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7526,19 +7524,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7546,15 +7544,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7567,8 +7565,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7576,49 +7574,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7658,7 +7656,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7674,7 +7672,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7734,113 +7732,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7852,35 +7850,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7892,40 +7890,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7945,103 +7943,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8082,7 +8080,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8108,12 +8106,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8139,7 +8137,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8148,438 +8146,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8595,116 +8593,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8925,7 +8923,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9562,7 +9560,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12731,7 +12729,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13370,7 +13368,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13541,31 +13539,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13581,15 +13579,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13601,38 +13599,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index 8aa588b684..340397e93e 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Hungarian\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API funkciót nem találom" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Nincs jogosultságod az adatok megtekintéséhez" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Nincs érték megadva" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "{original} átváltása {unit}-ra sikertelen" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Hibás mennyiség" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Hibás mennyiség ({exc})" @@ -47,22 +47,22 @@ msgstr "Hibás mennyiség ({exc})" msgid "Error details can be found in the admin panel" msgstr "A hiba részleteit megtalálod az admin panelen" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Dátum megadása" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Dátum megadása" msgid "Notes" msgstr "Megjegyzések" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "A(z) '{name}' érték nem a szükséges minta szerinti" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "A megadott érték nem felel meg a szükséges mintának: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Jelszó megadása" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Új jelszó megadása" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Jelszó megerősítése" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Új jelszó megerősítése" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Régi jelszó" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (újra)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Email cím megerősítés" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Mindig ugyanazt az email címet kell beírni." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "A megadott elsődleges email cím nem valós." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "A megadott email domain nincs jóváhagyva." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Regisztráció le van tiltva." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Nem megfelelő mennyiség" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Üres sorozatszám" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Duplikált sorozatszám" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Hibás tartomány: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Csoport tartomány {group} több mint az engedélyezett ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Hibás csoport-sor: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Nem található sorozatszám" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Az egyedi sorozatszámok számának ({len(serials)}) meg kell egyeznie a mennyiséggel ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "HTML tag-ek eltávolítása ebből az értékből" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Csatlakozási hiba" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Kivétel történt" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "A kiszolgáló érvénytelen Content-Length értéket adott" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "A kép mérete túl nagy" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "A kép letöltés meghaladja a maximális méretet" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "A kiszolgáló üres választ adott" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Belépés az alkalmazásba" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Email" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "A meta adatnak egy python dict objektumnak kell lennie" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Plugin meta adatok" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "JSON meta adat mező, külső pluginok számára" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Helytelenül formázott minta" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Ismeretlen formátum kulcs lett megadva" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Hiányzó formátum kulcs" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Az azonosító mező nem lehet üres" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Az azonosítónak egyeznie kell a mintával" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Azonosító szám túl nagy" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Hiányzó fájl" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Hiányzó külső link" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Melléklet" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Válaszd ki a mellekelni kívánt fájlt" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Válaszd ki a mellekelni kívánt fájlt" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Link külső URL-re" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Megjegyzés" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Leírás, bővebb infó" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Felhasználó" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "feltöltés dátuma" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "A fájlnév nem lehet üres" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Érvénytelen melléklet mappa" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Fájlnévben érvénytelen karakter van '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Fájlnév kiterjesztése hiányzik" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Ilyen fájlnévvel már létezik melléklet" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Hiba a fájl átnevezésekor" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Érvénytelen választás" msgid "Name" msgstr "Név" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Név" msgid "Description" msgstr "Leírás" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Leírás (opcionális)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "szülő" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Elérési út" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Markdown megjegyzések (opcionális)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Vonalkód adat" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Harmadik féltől származó vonalkód adat" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Vonalkód hash" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Egyedi vonalkód hash" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Létező vonalkód" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Kiszolgálóhiba" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Pénznem" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Válassz pénznemet a lehetőségek közül" @@ -463,16 +462,16 @@ msgstr "Válassz pénznemet a lehetőségek közül" msgid "You do not have permission to change this user role." msgstr "Önnek nincs joga változtatni ezen a felhasználói szerepkörön." -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "Csak a superuser-ek hozhatnak létre felhasználókat" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "Üdvözöljük a {current_site.name}-on" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -483,269 +482,269 @@ msgstr "" "\n" "Bejelentkezéshez használja a jelszó beállítás funkciót (at https://{domain})." -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Fájlnév" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Érvénytelen érték" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Adat fájl" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Fájl kiválasztása feltöltéshez" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Nem támogatott fájltípus" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Fájl túl nagy" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Nem találhatók oszlopok a fájlban" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Nincsenek adatsorok a fájlban" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Nincs adatsor megadva" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Nincs adat oszlop megadva" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Szükséges oszlop hiányzik: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikált oszlop: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "A távoli kép URL-je" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 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:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "Bolgár" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Cseh" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Dán" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Német" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Görög" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Angol" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Spanyol (Mexikói)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Fárszi/Perzsa" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Finn" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Francia" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Héber" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Hindi" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Magyar" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Olasz" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japán" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Koreai" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Holland" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norvég" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Lengyel" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugál" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugál (Brazíliai)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Orosz" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Szlovén" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Svéd" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Tháj" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Török" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnámi" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Kínai (egyszerűsített)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Kínai (Hagyományos)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Háttér folyamat ellenőrzés sikertelen" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Email backend nincs beállítva" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InvenTree rendszer állapotának ellenőrzése sikertelen" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Függőben" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Kiküldve" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Kész" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Törölve" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Elveszett" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Visszaküldve" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Folyamatban" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Kiszállítva" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "Rendben" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Ellenőrizendő" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Sérült" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Megsemmisült" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Elutasított" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "Karanténban" @@ -857,23 +856,23 @@ msgstr "Vevőtől visszaérkezett" msgid "Production" msgstr "Folyamatban" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Visszavétel" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Javítás" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Csere" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Visszatérítés" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Elutasított" @@ -885,11 +884,11 @@ msgstr "Érvénytelen fizikai mértékegység" msgid "Not a valid currency code" msgstr "Érvénytelen pénznem kód" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Túlszállítás nem lehet negatív" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Túlszállítás nem lehet több mint 100%" @@ -897,27 +896,27 @@ msgstr "Túlszállítás nem lehet több mint 100%" msgid "Invalid value for overage" msgstr "Érvénytelen érték a túlszállításra" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Felhasználói információ módosítása" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Jelszó beállítása" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "A jelszavaknak egyeznie kell" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Rossz jelszó lett megadva" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Rendszerinformáció" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Verzió információk" @@ -925,14 +924,14 @@ msgstr "Verzió információk" msgid "Build must be cancelled before it can be deleted" msgstr "A gyártást be kell fejezni a törlés előtt" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Fogyóeszköz" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -946,14 +945,14 @@ msgstr "Opcionális" msgid "Tracked" msgstr "Követett" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Lefoglalva" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -983,7 +982,7 @@ msgstr "Gyártási utasítás" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Gyártási utasítások" @@ -999,9 +998,9 @@ msgstr "Gyártási rendelés alkatrész nem változtatható" msgid "Build Order Reference" msgstr "Gyártási utasítás azonosító" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1029,13 +1028,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1046,7 +1045,7 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1133,8 +1132,8 @@ msgstr "Gyártási állapot" msgid "Build status code" msgstr "Gyártás státusz kód" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Batch kód" @@ -1143,7 +1142,7 @@ msgstr "Batch kód" msgid "Batch code for this build output" msgstr "Batch kód a gyártás kimenetéhez" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1158,7 +1157,7 @@ msgstr "Befejezés cél dátuma" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Befejezés dátuma" @@ -1176,10 +1175,10 @@ msgid "User who issued this build order" msgstr "Felhasználó aki ezt a gyártási utasítást kiállította" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1200,7 +1199,7 @@ msgstr "Felhasználó vagy csoport aki felelős ezért a gyártásért" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1214,8 +1213,8 @@ msgstr "Priorítás" msgid "Priority of this build order" msgstr "Gyártási utasítás priorítása" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1251,9 +1250,9 @@ msgid "Build output does not match Build Order" msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" @@ -1267,10 +1266,10 @@ msgstr "Gyártás objektum" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1280,7 +1279,7 @@ msgstr "Gyártás objektum" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1325,11 +1324,11 @@ msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Készlet túlfoglalva" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" @@ -1341,9 +1340,9 @@ msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" msgid "Selected stock item does not match BOM line" msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1407,8 +1406,8 @@ msgstr "Egész számú mennyiség szükséges az egyedi követésre kötelezett 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:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Sorozatszámok" @@ -1425,7 +1424,7 @@ msgstr "Sorozatszámok automatikus hozzárendelése" 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:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "A következő sorozatszámok már léteznek vagy nem megfelelőek" @@ -1433,10 +1432,10 @@ msgstr "A következő sorozatszámok már léteznek vagy nem megfelelőek" msgid "A list of build outputs must be provided" msgstr "A gyártási kimenetek listáját meg kell adni" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1474,9 +1473,9 @@ msgid "Location for completed build outputs" msgstr "A kész gyártási kimenetek helye" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1550,7 +1549,7 @@ msgstr "Fogadd el hogy a készlet tételek nincsenek teljesen lefoglalva ehhez a msgid "Required stock has not been fully allocated" msgstr "A szükséges készlet nem lett teljesen lefoglalva" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Befejezetlenek elfogadása" @@ -1586,11 +1585,11 @@ msgstr "Gyártás sor tétel" 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:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "A tételnek kell legyen készlete" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Rendelkezésre álló mennyiség ({q}) túllépve" @@ -1603,7 +1602,7 @@ msgstr "Gyártási kimenetet meg kell adni a követésre kötelezett alkatrésze 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:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "A lefoglalandó tételeket meg kell adni" @@ -1768,8 +1767,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Még nincs lefoglalva a szükséges készlet" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1806,8 +1805,8 @@ msgid "Completed Outputs" msgstr "Befejezett kimenetek" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1857,7 +1856,7 @@ msgstr "Készlet forrás" msgid "Stock can be taken from any available location." msgstr "Készlet bármely rendelkezésre álló helyről felhasználható." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Cél" @@ -1870,7 +1869,7 @@ msgstr "A cél hely nincs megadva" msgid "Allocated Parts" msgstr "Lefoglalt alkatrészek" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2026,19 +2025,19 @@ msgstr "Fájl beolvasási hiba (hibás dimenzió)" msgid "Error reading file (data could be corrupted)" msgstr "Fájl beolvasási hiba (sérült lehet)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Fájl" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Feltöltendő fájl kiválasztása" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} Fájl" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "{name} fájl kiválasztása feltöltéshez" @@ -2051,1041 +2050,1041 @@ msgstr "Frissítve" msgid "Timestamp of last update" msgstr "Legutóbbi frissítés időpontja" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Egyedi projektszám" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Projekt leírása" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "A projektért felelős felhasználó vagy csoport" -#: common/models.py:658 +#: common/models.py:714 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:660 +#: common/models.py:718 msgid "Settings value" msgstr "Beállítás értéke" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "A kiválasztott érték nem egy érvényes lehetőség" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "Az érték bináris kell legyen" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "Az érték egész szám kell legyen" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "Kulcs string egyedi kell legyen" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Nincs csoport" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Üres domain nem engedélyezett." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Érvénytelen domain név: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "Nincsen plugin" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Újraindítás szükséges" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "Egy olyan beállítás megváltozott ami a kiszolgáló újraindítását igényli" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "Függőben levő migrációk" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "Függőben levő adatbázis migrációk" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "Kiszolgáló példány neve" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "String leíró a kiszolgáló példányhoz" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Példány név használata" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "Példány név használata a címsorban" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "Verzió infók megjelenítésének tiltása" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "Verzió infók megjelenítése csak admin felhasználóknak" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Cég neve" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Belső cégnév" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "Kiindulási URL" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "Kiindulási URL a kiszolgáló példányhoz" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Alapértelmezett pénznem" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "Válassz alap pénznemet az ár számításokhoz" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "Árfolyam frissítési gyakoriság" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Milyen gyakran frissítse az árfolyamokat (nulla a kikapcsoláshoz)" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "nap" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "Árfolyam frissítő plugin" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "Kiválasztott árfolyam frissítő plugin" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Letöltés URL-ről" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Képek és fájlok letöltésének engedélyezése külső URL-ről" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Letöltési méret korlát" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Maximum megengedett letöltési mérete a távoli képeknek" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "Felhasznált User-agent az URL-ről letöltéshez" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "A külső URL-ről letöltéshez használt user-agent felülbírálásának engedélyezése (hagyd üresen az alapértelmezéshez)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Megerősítés igénylése" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Kérjen felhasználói megerősítést bizonyos műveletekhez" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Fa mélység" -#: common/models.py:1194 +#: common/models.py:1269 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:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Frissítés keresés gyakorisága" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "Milyen gyakran ellenőrizze van-e új frissítés (0=soha)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Automatikus biztonsági mentés" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Adatbázis és média fájlok automatikus biztonsági mentése" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Automata biztonsági mentés gyakorisága" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Hány naponta készüljön automatikus biztonsági mentés" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "Feladat törlési gyakoriság" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "Háttérfolyamat eredmények törlése megadott nap eltelte után" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "Hibanapló törlési gyakoriság" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "Hibanapló bejegyzések törlése megadott nap eltelte után" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "Értesítés törlési gyakoriság" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Felhasználói értesítések törlése megadott nap eltelte után" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Vonalkód támogatás" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "Vonalkód olvasó támogatás engedélyezése a web felületen" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Vonalkód beadási késleltetés" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Vonalkód beadáskor a feldolgozás késleltetési ideje" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Webkamerás vonalkód olvasás" -#: common/models.py:1284 +#: common/models.py:1336 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:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "Alkatrész változatok" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "Alkatrész változat vagy verziószám tulajdonság használata" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "IPN reguláris kifejezés" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "Reguláris kifejezés ami illeszkedik az alkatrész IPN-re" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Többször is előforduló IPN engedélyezése" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "Azonos IPN használható legyen több alkatrészre is" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "IPN szerkesztésének engedélyezése" -#: common/models.py:1310 +#: common/models.py:1358 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:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Alkatrészjegyzék adatok másolása" -#: common/models.py:1317 +#: common/models.py:1364 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:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "Alkatrész paraméterek másolása" -#: common/models.py:1324 +#: common/models.py:1370 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:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "Alkatrész teszt adatok másolása" -#: common/models.py:1331 +#: common/models.py:1376 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:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Kategória paraméter sablonok másolása" -#: common/models.py:1338 +#: common/models.py:1382 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:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Sablon" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Alkatrészek alapból sablon alkatrészek legyenek" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Gyártmány" -#: common/models.py:1352 +#: common/models.py:1394 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:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Összetevő" -#: common/models.py:1359 +#: common/models.py:1400 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:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Beszerezhető" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Alkatrészek alapból beszerezhetők legyenek" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Értékesíthető" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Alkatrészek alapból eladhatók legyenek" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Követésre kötelezett" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Alkatrészek alapból követésre kötelezettek legyenek" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Virtuális" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Alkatrészek alapból virtuálisak legyenek" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Importálás megjelenítése a nézetekben" -#: common/models.py:1394 +#: common/models.py:1430 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:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Kapcsolódó alkatrészek megjelenítése" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Alkatrész kapcsolódó alkatrészeinek megjelenítése" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Kezdeti készlet adatok" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Kezdeti készlet létrehozása új alkatrész felvételekor" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Kezdeti beszállítói adatok" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Kezdeti beszállítói adatok létrehozása új alkatrész felvételekor" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Alkatrész név megjelenítés formátuma" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Formátum az alkatrész név megjelenítéséhez" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Alkatrész kategória alapértelmezett ikon" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Alkatrész kategória alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "Csak választható mértékegységek" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "A megadott mértékegység csak a beállított lehetőségekből legyen elfogadva" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "Áraknál használt tizedesjegyek min. száma" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Tizedejegyek minimális száma az árak megjelenítésekor" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "Áraknál használt tizedesjegyek max. száma" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Tizedejegyek maximális száma az árak megjelenítésekor" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Beszállítói árazás használata" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Beszállítói ársávok megjelenítése az általános árkalkulációkban" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Beszerzési előzmények felülbírálása" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Beszerzési árelőzmények felülírják a beszállítói ársávokat" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "Készlet tétel ár használata" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "A kézzel bevitt készlet tétel árak használata az árszámításokhoz" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "Készlet tétel ár kora" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Az ennyi napnál régebbi készlet tételek kizárása az árszámításból" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "Alkatrészváltozat árak használata" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "Alkatrészváltozat árak megjelenítése az általános árkalkulációkban" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "Csak az aktív változatokat" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "Csak az aktív alkatrészváltozatok használata az árazásban" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "Árazás újraszámítás gyakoriság" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "Árak automatikus frissítése ennyi nap után" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Belső árak" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "Alkatrészekhez belső ár engedélyezése" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Belső ár felülbírálása" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "Ha elérhetőek az árkalkulációkban a belső árak lesznek alapul véve" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Címke nyomtatás engedélyezése" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Címke nyomtatás engedélyezése a web felületről" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "Címke kép DPI" -#: common/models.py:1543 +#: common/models.py:1569 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:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Riportok engedélyezése" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Riportok előállításának engedélyezése" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Debug mód" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Riportok előállítása HTML formátumban (hibakereséshez)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Lapméret" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Alapértelmezett lapméret a PDF riportokhoz" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Teszt riportok engedélyezése" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Teszt riportok előállításának engedélyezése" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Teszt riportok hozzáadása" -#: common/models.py:1581 +#: common/models.py:1601 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:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "Globálisan egyedi sorozatszámok" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "A sorozatszámoknak egyedinek kell lennie a teljes készletre vonatkozóan" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Sorozatszámok automatikus kitöltése" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Sorozatszámok automatikus kitöltése a formokon" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Kimerült készlet törlése" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Alapértelmezett művelet mikor a készlet tétel elfogy" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "Batch kód sablon" -#: common/models.py:1609 +#: common/models.py:1629 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:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "Készlet lejárata" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "Készlet lejárat kezelésének engedélyezése" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "Lejárt készlet értékesítése" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "Lejárt készlet értékesítésének engedélyezése" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "Álló készlet ideje" -#: common/models.py:1629 +#: common/models.py:1648 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:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "Lejárt készlet gyártása" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "Gyártás engedélyezése lejárt készletből" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "Készlet tulajdonosok kezelése" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "Tulajdonosok kezelésének engedélyezése a készlet helyekre és tételekre" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "Hely alapértelmezett ikon" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "Hely alapértelmezett ikon (üres ha nincs)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "Beépített készlet megjelenítése" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "Beépített készlet tételek megjelenítése a készlet táblákban" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "Gyártási utasítás azonosító minta" -#: common/models.py:1664 +#: common/models.py:1680 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:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "Visszavétel engedélyezése" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "Visszavételek engedélyezése a felületen" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "Visszavétel azonosító minta" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "Szükséges minta a visszavétel azonosító mező előállításához" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "Befejezett visszavétel szerkesztése" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "Visszavétel szerkesztésének engedélyezése befejezés után" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "Vevői rendelés azonosító minta" -#: common/models.py:1692 +#: common/models.py:1710 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:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "Vevői rendeléshez alapértelmezett szállítmány" -#: common/models.py:1699 +#: common/models.py:1717 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:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "Befejezett vevői rendelés szerkesztése" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Vevői rendelések szerkesztésének engedélyezése szállítás vagy befejezés után" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "Beszerzési rendelés azonosító minta" -#: common/models.py:1713 +#: common/models.py:1732 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:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "Befejezett beszerzési rendelés szerkesztése" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Beszérzési rendelések szerkesztésének engedélyezése kiküldés vagy befejezés után" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Elfelejtett jelszó engedélyezése" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Regisztráció engedélyezése" -#: common/models.py:1735 +#: common/models.py:1754 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:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "SSO engedélyezése" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "SSO engedélyezése a bejelentkező oldalon" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "SSO regisztráció engedélyezése" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése SSO-n keresztül a bejelentkező oldalon" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Email szükséges" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "Kötelező email megadás regisztrációkor" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "SSO felhasználók automatikus kitöltése" -#: common/models.py:1763 +#: common/models.py:1781 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:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "Email kétszer" -#: common/models.py:1770 +#: common/models.py:1788 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:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Jelszó kétszer" -#: common/models.py:1777 +#: common/models.py:1794 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:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Engedélyezett domainek" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Feliratkozás korlátozása megadott domain-ekre (vesszővel elválasztva, @-al kezdve)" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Csoport regisztráláskor" -#: common/models.py:1791 +#: common/models.py:1808 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:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "Többfaktoros hitelesítés kényszerítése" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Pluginok ellenőrzése indításkor" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "URL integráció engedélyezése" -#: common/models.py:1814 +#: common/models.py:1831 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:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "Navigációs integráció engedélyezése" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "Navigációs integráció engedélyezése a pluginok számára" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "App integráció engedélyezése" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "App hozzáadásának engedélyezése a pluginok számára" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "Ütemezés integráció engedélyezése" -#: common/models.py:1838 +#: common/models.py:1852 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:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "Esemény integráció engedélyezése" -#: common/models.py:1846 +#: common/models.py:1859 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:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "Projektszámok engedélyezése" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "Projektszámok használatának engedélyezése a projektek követéséhez" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "Leltár funkció" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Leltár funkció engedélyezése a készlet mennyiség és érték számításhoz" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "Külső helyek nélkül" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Külső helyek figyelmen kívül hagyása a leltár számításoknál" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "Automatikus leltár időpontja" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Hány naponta történjen automatikus leltár (nulla egyenlő tiltva)" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "Riport törlési gyakoriság" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Régi leltár riportok törlése hány naponta történjen" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "Felhasználók teljes nevének megjelenítése" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "Felhasználói név helyett a felhasználók teljes neve jelenik meg" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 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:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Nem aktív alkatrészek elrejtése a kezdőlapon" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Értesítésre beállított alkatrészek megjelenítése" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Alkatrész értesítések megjelenítése a főoldalon" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Értesítésre beállított kategóriák megjelenítése" -#: common/models.py:1963 +#: common/models.py:1973 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:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Legújabb alkatrészek megjelenítése" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Legújabb alkatrészek megjelenítése a főoldalon" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Jóváhagyás nélküli alkatrészjegyzékek megjelenítése" -#: common/models.py:1977 +#: common/models.py:1985 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:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Legfrissebb készlet változások megjelenítése" -#: common/models.py:1984 +#: common/models.py:1991 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:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Alacsony készlet megjelenítése" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Alacsony készletek megjelenítése a főoldalon" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Kimerült készlet megjelenítése" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Kimerült készletek megjelenítése a főoldalon" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Gyártáshoz szükséges készlet megjelenítése" -#: common/models.py:2005 +#: common/models.py:2009 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:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Lejárt készlet megjelenítése" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Lejárt készletek megjelenítése a főoldalon" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Állott készlet megjelenítése" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Álló készletek megjelenítése a főoldalon" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Függő gyártások megjelenítése" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" @@ -3097,450 +3096,450 @@ msgstr "Késésben lévő gyártások megjelenítése" 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:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "Kintlévő beszerzési rendelések megjelenítése" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "Késésben lévő megrendelések megjelenítése" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "Késésben lévő megrendelések megjelenítése a főoldalon" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "Függő vevői rendelések megjelenítése" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "Függő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "Késésben lévő vevői rendelések megjelenítése" -#: common/models.py:2061 +#: common/models.py:2057 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:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "Függő vevői szállítmányok megjelenítése" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "Folyamatban lévő vevői szállítmányok megjelenítése a főoldalon" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Hírek megjelenítése" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Hírek megjelenítése a főoldalon" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "Beágyazott címke megjelenítés" -#: common/models.py:2082 +#: common/models.py:2076 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:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "Alapértelmezett címkenyomtató" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "Melyik címkenyomtató legyen az alapértelmezett" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "Beágyazott riport megjelenítés" -#: common/models.py:2096 +#: common/models.py:2092 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:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Alkatrészek keresése" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "Alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "Beszállítói alkatrészek keresése" -#: common/models.py:2110 +#: common/models.py:2105 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:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Gyártói alkatrészek keresése" -#: common/models.py:2117 +#: common/models.py:2111 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:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2124 +#: common/models.py:2117 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:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "Kategóriák keresése" -#: common/models.py:2131 +#: common/models.py:2123 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:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "Készlet keresése" -#: common/models.py:2138 +#: common/models.py:2129 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:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "Nem elérhető készlet tételek elrejtése" -#: common/models.py:2145 +#: common/models.py:2136 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:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "Helyek keresése" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "Készlet helyek megjelenítése a keresési előnézetben" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "Cégek keresése" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "Cégek megjelenítése a keresési előnézetben" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Gyártási utasítások keresése" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "Gyártási utasítások megjelenítése a keresés előnézet ablakban" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "Beszerzési rendelések keresése" -#: common/models.py:2173 +#: common/models.py:2161 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:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktív beszerzési rendelések kihagyása" -#: common/models.py:2180 +#: common/models.py:2168 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:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Vevői rendelések keresése" -#: common/models.py:2187 +#: common/models.py:2175 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:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "Inaktív vevői rendelések kihagyása" -#: common/models.py:2194 +#: common/models.py:2182 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:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Visszavétel keresése" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "Visszavételek megjelenítése a keresés előnézet ablakban" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "Inaktív visszavételek kihagyása" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktív visszavételek kihagyása a keresési előnézet találataiból" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "Keresési előnézet eredményei" -#: common/models.py:2215 +#: common/models.py:2204 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:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "Regex keresés" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "Reguláris kifejezések engedélyezése a keresésekben" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "Teljes szó keresés" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "A keresések csak teljes szóra egyező találatokat adjanak" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Mennyiség megjelenítése a formokon" -#: common/models.py:2236 +#: common/models.py:2223 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:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "ESC billentyű zárja be a formot" -#: common/models.py:2243 +#: common/models.py:2229 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:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Rögzített menüsor" -#: common/models.py:2250 +#: common/models.py:2235 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:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Dátum formátum" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Alkatrész ütemezési információk megjelenítése" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Alkatrész leltár" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Alkatrész leltár információk megjelenítése (ha a leltár funkció engedélyezett)" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "Táblázati szöveg hossz" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "Alapértelmezett alkatrész címke sablon" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "Az alapértelmezetten kiválasztott alkatrész címke sablon" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "Alapértelmezett készlet címke sablon" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "Az alapértelmezetten kiválasztott készlet címke sablon" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "Alapértelmezett készlethely címke sablon" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "Az alapértelmezetten kiválasztott készlethely címke sablon" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "Hibariportok fogadása" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "Értesítések fogadása a rendszerhibákról" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "Ársáv mennyiség" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Ár" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "Egységár egy meghatározott mennyiség esetén" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "Végpont" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "Végpont ahol ez a webhook érkezik" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "Webhook neve" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Aktív" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "Token" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "Token a hozzáféréshez" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Titok" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "Megosztott titok a HMAC-hoz" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "Üzenet azonosító" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "Egyedi azonosító ehhez az üzenethez" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Kiszolgáló" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "Kiszolgáló ahonnan ez az üzenet érkezett" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Fejléc" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "Üzenet fejléce" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Törzs" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "Üzenet törzse" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "Végpont amin ez az üzenet érkezett" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "Dolgozott rajta" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "Id" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Cím" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Közzétéve" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Szerző" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Összefoglaló" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "Elolvasva" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "Elolvasva?" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3550,76 +3549,76 @@ msgstr "Elolvasva?" msgid "Image" msgstr "Kép" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "Képfájl" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "A mértékegységnek valós azonosítónak kell lennie" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "Egység neve" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Szimbólum" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "Opcionális mértékegység szimbólum" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definíció" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "Mértékegység definíció" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Új {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "Egy új megrendelés létrehozva, és hozzád rendelve" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} megszakítva" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "Egy hozzád rendelt megrendelés megszakítva" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "Készlet érkezett" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "Készlet érkezett egy beszerzési megrendeléshez" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "Készlet érkezett vissza egy visszavétel miatt" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "Plugin hiba" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Fájl feltöltése" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3627,19 +3626,19 @@ msgstr "Fájl feltöltése" msgid "Match Fields" msgstr "Mezők egyeztetése" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "Tételek egyeztetése" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "Mezők egyeztetése sikertelen" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Importált alkatrészek" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3650,186 +3649,186 @@ msgstr "Importált alkatrészek" msgid "Previous Step" msgstr "Előző lépés" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Cég leírása" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "A cég leírása" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Weboldal" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Cég weboldala" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Telefonszám" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Kapcsolattartó telefonszáma" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Kapcsolattartó email címe" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Névjegy" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Kapcsolattartó" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Link a külső céginformációhoz" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "vevő-e" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Értékesítesz alkatrészeket ennek a cégnek?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "beszállító-e" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Vásárolsz alkatrészeket ettől a cégtől?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "gyártó-e" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Gyárt ez a cég alkatrészeket?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Cég által használt alapértelmezett pénznem" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Cég" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "Cég kiválasztása" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "Cím megnevezése" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "Címhez tartozó leírás, megnevezés" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "Elsődleges cím" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "Beállítás elsődleges címként" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "1. sor" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "Cím első sora" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "2. sor" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "Cím második sora" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "Irányítószám" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "Város/Régió" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "Irányítószám város/régió" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "Állam/Megye" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "Állam vagy megye" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "Ország" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "Cím országa" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "Megjegyzés a futárnak" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "Futárnak szóló megjegyzések" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "Belső szállítási megjegyzések" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "Szállítási megjegyzések belső használatra" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "Link a címinformációkhoz (külső)" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Kiindulási alkatrész" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Válassz alkatrészt" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3839,12 +3838,12 @@ msgstr "Válassz alkatrészt" msgid "Manufacturer" msgstr "Gyártó" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Gyártó kiválasztása" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3854,69 +3853,69 @@ msgstr "Gyártó kiválasztása" msgid "MPN" msgstr "MPN" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Gyártói cikkszám" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "URL link a gyártói alkatrészhez" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "Gyártói alkatrész leírása" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Paraméter neve" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Érték" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Paraméter értéke" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Mértékegység" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Paraméter mértékegység" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "A csomagolási egységnek kompatibilisnek kell lennie az alkatrész mértékegységgel" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Csomagolási mennyiségnek nullánál többnek kell lennie" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3929,28 +3928,28 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr msgid "Supplier" msgstr "Beszállító" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Beszállító kiválasztása" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Beszállítói cikkszám" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Gyártói alkatrész kiválasztása" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "URL link a beszállítói alkatrészhez" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3960,27 +3959,27 @@ msgstr "Beszállítói alkatrész leírása" msgid "Note" msgstr "Megjegyzés" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "alap költség" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Csomagolás" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "Alkatrész csomagolás" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3990,27 +3989,27 @@ msgstr "Alkatrész csomagolás" msgid "Pack Quantity" msgstr "Csomagolási mennyiség" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Egy csomagban kiszállítható mennyiség, hagyd üresen az egyedi tételeknél." -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "többszörös" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "Többszörös rendelés" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "Beszállítónál elérhető mennyiség" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "Elérhetőség frissítve" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "Utolsó elérhetőségi adat frissítés" @@ -4072,10 +4071,10 @@ msgstr "Kép letöltése URL-ről" msgid "Delete image" msgstr "Kép törlése" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4090,7 +4089,7 @@ msgstr "Vevő" msgid "Uses default currency" msgstr "Alapértelmezett pénznemet használja" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4170,7 +4169,7 @@ msgstr "Beszállítói készlet" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Beszerzési rendelések" @@ -4193,7 +4192,7 @@ msgstr "Új beszerzési rendelés" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Vevői rendelések" @@ -4218,7 +4217,7 @@ msgstr "Hozzárendelt készlet" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "Visszavételek" @@ -4286,7 +4285,7 @@ msgstr "Nincs elérhető gyártói információ" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Beszállítók" @@ -4335,7 +4334,7 @@ msgid "Addresses" msgstr "Címek" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4384,8 +4383,8 @@ msgstr "Beszállítói alkatrész törlése" msgid "No supplier information available" msgstr "Nincs elérhető beszállítói információ" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4434,16 +4433,16 @@ msgstr "Vonalkód hozzárendelése a beszállítói alkatrészhez" msgid "Update Part Availability" msgstr "Alkatrész elérhetőség frissítése" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Készlet tételek" @@ -4476,11 +4475,11 @@ msgstr "Cégek" msgid "New Company" msgstr "Új cég" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Címke neve" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Címke leírása" @@ -4492,7 +4491,7 @@ msgstr "Címke" msgid "Label template file" msgstr "Címke sablon fájl" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Engedélyezve" @@ -4516,7 +4515,7 @@ msgstr "Magasság [mm]" msgid "Label height, specified in mm" msgstr "Címke magassága, mm-ben" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Fájlnév minta" @@ -4524,14 +4523,14 @@ msgstr "Fájlnév minta" msgid "Pattern for generating label filenames" msgstr "Minta a címke fájlnevek előállításához" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "Lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Szűrők" @@ -4548,7 +4547,7 @@ msgstr "QR kód" msgid "QR code" msgstr "QR kód" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4557,11 +4556,11 @@ msgstr "QR kód" msgid "Total Price" msgstr "Teljes ár" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "Nincs egyező beszerzési rendelés" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4575,7 +4574,7 @@ msgstr "Nincs egyező beszerzési rendelés" msgid "Purchase Order" msgstr "Beszerzési rendelés" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4584,192 +4583,192 @@ msgstr "Beszerzési rendelés" msgid "Return Order" msgstr "Visszavétel" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Ismeretlen" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "A rendelés teljes ára" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "Rendelés pénzneme" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "Megrendeléshez használt pénznem (hagyd üresen a cégnél alapértelmezetthez)" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "A kapcsolattartó nem egyezik a kiválasztott céggel" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "Rendelés leírása (opcionális)" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "Válassz projektszámot ehhez a rendeléshez" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Link külső weboldalra" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Várt teljesítési dátuma a megrendelésnek. Ezután már késésben lévőnek számít majd." -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Készítette" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Felhasználó vagy csoport aki felelőse ennek a rendelésnek" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "Kapcsolattartó ehhez a rendeléshez" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "Cég címei ehhez a rendeléshez" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Rendelés azonosító" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Beszerzési rendelés állapota" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Cég akitől a tételek beszerzésre kerülnek" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "Beszállítói azonosító" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "Beszállítói rendelés azonosító kód" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "érkeztette" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Kiállítás dátuma" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Kiállítás dátuma" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "Rendelés teljesítési dátuma" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "Mennyiség pozitív kell legyen" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Cég akinek a tételek értékesítésre kerülnek" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Vevői azonosító " -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "Megrendelés azonosító kódja a vevőnél" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Kiszállítás dátuma" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "szállította" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "A rendelés nem teljesíthető mivel nincs hozzárendelve alkatrész" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "Csak nyitott rendelés jelölhető késznek" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "A rendelés nem jelölhető késznek mivel függő szállítmányok vannak" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Tétel mennyiség" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "Sortétel azonosító" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "Sortétel megjegyzései" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Cél dátuma ennek a sortételnek (hagyd üresen a rendelés céldátum használatához)" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "Sortétel leírása (opcionális)" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Kontextus" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "További kontextus ehhez a sorhoz" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "Egységár" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "törölve" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Rendelés" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "Beszállítói alkatrész" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4779,261 +4778,261 @@ msgstr "Beszállítói alkatrész" msgid "Received" msgstr "Beérkezett" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "Érkezett tételek száma" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Beszerzési ár" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Beszerzési egységár" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "Mit szeretne a vevő hol tároljuk ezt az alkatrészt?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuális alkatrészt nem lehet vevői rendeléshez adni" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Eladási ár" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Eladási egységár" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Szállított mennyiség" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Szállítás dátuma" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Szállítási dátum" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "Kézbesítés dátuma" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Ellenőrizte" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Szállítmány" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Szállítmány száma" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Nyomkövetési szám" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Szállítmány nyomkövetési információ" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "Számlaszám" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "Hozzátartozó számla referencia száma" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "Szállítmány már elküldve" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "Készlet tétel nincs hozzárendelve" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "Vevői rendelés nem egyezik a szállítmánnyal" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "Szállítmány nem egyezik a vevői rendeléssel" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Sor" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "Vevői rendelés szállítmány azonosító" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Tétel" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "Válaszd ki a foglalásra szánt készlet tételt" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Készlet foglalási mennyiség megadása" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "Visszavétel azonosító" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "Cég akitől a tételek visszavételre kerülnek" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "Visszavétel állapota" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "Csak szériaszámos tételek rendelhetők visszaszállítási utasításhoz" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "Válaszd ki a vevőtől visszavenni kívánt tételt" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "Visszavétel dátuma" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "Mikor lett visszavéve a tétel" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Kimenetel" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "Sortétel végső kimenetele" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "Sortétel visszaküldésének vagy javításának költsége" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "A rendelést nem lehet törölni" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 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:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "A rendelésben teljesítetlen sortételek vannak" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "A rendelés nem nyitott" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Beszérzési ár pénzneme" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "Beszállítói alkatrészt meg kell adni" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "Beszerzési rendelést meg kell adni" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "A beszállítónak egyeznie kell a beszerzési rendelésben lévővel" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "A beszerzési rendelésnek egyeznie kell a beszállítóval" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "Sortétel" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "Sortétel nem egyezik a beszerzési megrendeléssel" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "Válassz cél helyet a beérkezett tételeknek" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "Írd be a batch kódját a beérkezett tételeknek" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Írd be a sorozatszámokat a beérkezett tételekhez" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Vonalkód" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "Beolvasott vonalkód" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "Ez a vonalkód már használva van" -#: order/serializers.py:579 +#: order/serializers.py:586 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:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "Sortételt meg kell adni" @@ -5045,51 +5044,51 @@ msgstr "A cél helyet kötelező megadni" msgid "Supplied barcode values must be unique" msgstr "Megadott vonalkódoknak egyedieknek kel lenniük" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "Eladási ár pénzneme" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "Nincsenek szállítmány részletek megadva" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "Sortétel nincs hozzárendelve ehhez a rendeléshez" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "Mennyiség pozitív kell legyen" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Írd be a sorozatszámokat a kiosztáshoz" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "Szállítmány kiszállítva" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "Szállítmány nincs hozzárendelve ehhez a rendeléshez" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "Nincs találat a következő sorozatszámokra" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "A következő sorozatszámok már ki lettek osztva" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "Visszavétel sortétel" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "Sortétel nem egyezik a visszavétellel" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "A sortétel már beérkezett" @@ -5097,24 +5096,24 @@ msgstr "A sortétel már beérkezett" msgid "Items can only be received against orders which are in progress" msgstr "Csak folyamatban lévő megrendelés tételeit lehet bevételezni" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "Sortétel pénzneme" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "Késésben lévő beszerzés" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "A {po} beszerzési rendelés most már késésben van" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "Késésben lévő vevői rendelés" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "A {so} vevői rendelés most már késésben van" @@ -5483,579 +5482,579 @@ msgstr "Új szállítmány" msgid "Match Supplier Parts" msgstr "Beszállítói alkatrészek egyeztetése" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "Vevő rendelés nem találhtó" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Nem található ár" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "A {part} egységára {price}-ra módosítva" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "A {part} alkatrész módosított egységára {price} mennyisége pedig {qty}" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "Alkatrész ID" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Alkatrész neve" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "Alkatrész leírása" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Változat" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Kulcsszavak" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "Alkatrész ábra" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "Kategória ID" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "Kategória neve" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "Alapértelmezett készlethely ID" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "Alapértelmezett beszállító ID" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Ebből a sablonból" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimális készlet" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "Készleten" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Rendelve" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Felhasználva ebben" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "Gyártásban" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Minimum költség" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Maximum költség" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "Szülő ID" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "Szülő neve" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Kategória elérési út" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Alkatrészek" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "Alkatrészjegyzék szint" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "Alkatrészjegyzék tétel ID" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "Szülő IPN" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "Alkatrész IPN" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Minimum ár" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Maximum ár" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "Beérkező beszerzési rendelés" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "Kimenő vevői rendelés" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "Gyártással előállított készlet" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "A gyártási utasításhoz szükséges készlet" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "Érvényes" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "Teljes alkatrészjegyzék jóváhagyása" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "Ennek az opciónak ki kll lennie választva" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Alapértelmezett hely" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Teljes készlet" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Elérhető készlet" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "Add meg a mennyiséget az árszámításhoz" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Alkatrész kategóriák" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Ebben a kategóriában lévő alkatrészek helye alapban" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Szerkezeti" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "A szerkezeti alkatrész kategóriákhoz nem lehet direktben alkatrészeket hozzáadni, csak az alkategóriáikhoz." -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Alapértelmezett kulcsszavak" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Ikon" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Ikon (opcionális)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Nem lehet az alkatrészkategóriát szerkezeti kategóriává tenni, mert már vannak itt alkatrészek!" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "Hibás választás a szülő alkatrészre" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Az '{self}' alkatrész nem használható a '{parent}' alkatrészjegyzékében (mert rekurzív lenne)" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Az '{parent}' alkatrész szerepel a '{self}' alkatrészjegyzékében (rekurzív)" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "Az IPN belső cikkszámnak illeszkednie kell a {pattern} regex mintára" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "Létezik már készlet tétel ilyen a sorozatszámmal" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "Azonos IPN nem engedélyezett az alkatrészekre, már létezik ilyen" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik." -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Alkatrész neve" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "Sablon-e" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "Ez egy sablon alkatrész?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "Ez az alkatrész egy másik változata?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "Alkatrész leírása (opcionális)" -#: part/models.py:812 +#: part/models.py:870 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:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategória" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Alkatrész kategória" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "Belső cikkszám" -#: part/models.py:831 +#: part/models.py:895 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:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "Alapban hol tároljuk ezt az alkatrészt?" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Alapértelmezett beszállító" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "Alapértelmezett beszállítói alkatrész" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "Alapértelmezett lejárat" -#: part/models.py:911 +#: part/models.py:975 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:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "Minimálisan megengedett készlet mennyiség" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "Alkatrész mértékegysége" -#: part/models.py:934 +#: part/models.py:1000 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:940 +#: part/models.py:1006 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:946 +#: part/models.py:1012 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:951 +#: part/models.py:1018 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:956 +#: part/models.py:1024 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:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "Aktív-e ez az alkatrész?" -#: part/models.py:966 +#: part/models.py:1034 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:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "Alkatrészjegyzék ellenőrző összeg" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "Tárolt alkatrészjegyzék ellenőrző összeg" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "Alkatrészjegyzéket ellenőrizte" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "Alkatrészjegyzék ellenőrzési dátuma" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "Létrehozó" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "Alkatrész felelőse" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Utolsó leltár" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "Árszámítások gyorstárazásához használt pénznem" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "Minimum alkatrészjegyzék költség" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "Összetevők minimum költsége" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "Maximum alkatrészjegyzék költség" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "Összetevők maximum költsége" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "Minimum beszerzési ár" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "Eddigi minimum beszerzési költség" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "Maximum beszerzési ár" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "Eddigi maximum beszerzési költség" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "Minimum belső ár" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "Minimum költség a belső ársávok alapján" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "Maximum belső ár" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "Maximum költség a belső ársávok alapján" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "Minimum beszállítói ár" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "Minimum alkatrész ár a beszállítóktól" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "Maximum beszállítói ár" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "Maximum alkatrész ár a beszállítóktól" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "Minimum alkatrészváltozat ár" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "Alkatrészváltozatok számolt minimum költsége" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "Maximum alkatrészváltozat ár" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "Alkatrészváltozatok számolt maximum költsége" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "Minimum költség felülbírálása" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "Maximum költség felülbírálása" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "Számított általános minimum költség" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "Számított általános maximum költség" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "Minimum eladási ár" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "Minimum eladási ár az ársávok alapján" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "Maximum eladási ár" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "Maximum eladási ár az ársávok alapján" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "Minimum eladási költség" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "Eddigi minimum eladási ár" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "Maximum eladási költség" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "Eddigi maximum eladási ár" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "Leltározható alkatrész" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "Tételszám" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "Egyedi készlet tételek száma a leltárkor" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "Teljes készlet a leltárkor" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6067,334 +6066,334 @@ msgstr "Teljes készlet a leltárkor" msgid "Date" msgstr "Dátum" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "Leltározva ekkor" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "További megjegyzések" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "Leltározta" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "Minimum készlet érték" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "Becsült minimum raktárkészlet érték" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "Maximum készlet érték" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "Becsült maximum raktárkészlet érték" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "Riport" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "Leltár riport fájl (generált)" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "Alkatrész szám" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "Leltározott alkatrészek száma" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "Felhasználó aki a leltár riportot kérte" -#: part/models.py:3233 +#: part/models.py:3406 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:3250 +#: part/models.py:3423 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:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Kötelező" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:3289 +#: part/models.py:3465 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:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:3295 +#: part/models.py:3472 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:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "A lehetőségek egyediek kell legyenek" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "Paraméter mértékegysége" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "Paraméter leírása" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Jelölőnégyzet" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "Ez a paraméter egy jelölőnégyzet?" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Lehetőségek" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "Választható lehetőségek (vesszővel elválasztva)" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "Hibás választás a paraméterre" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "Adat" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "Alkatrész ID vagy alkatrész név" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "Egyedi alkatrész ID értéke" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "Szint" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Ez az alkatrészjegyzék tétel fogyóeszköz (készlete nincs követve a gyártásban)" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:3796 +#: part/models.py:3986 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:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Jóváhagyva" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "Ez a BOM tétel jóvá lett hagyva" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Öröklődött" -#: part/models.py:3818 +#: part/models.py:4020 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:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Változatok" -#: part/models.py:3824 +#: part/models.py:4026 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:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 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:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:4067 +#: part/models.py:4284 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:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "1.rész" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "2.rész" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "Alkatrész kapcsolat nem hozható létre önmagával" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "Már létezik duplikált alkatrész kapcsolat" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Beszerzési pénzneme ennek a készlet tételnek" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "Nincs kiválasztva alkatrész" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "Válassz kategóriát" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "Eredeti alkatrész" @@ -6406,299 +6405,299 @@ msgstr "Válassz eredeti alkatrészt a másoláshoz" msgid "Copy Image" msgstr "Kép másolása" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "Kép másolása az eredeti alkatrészről" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Alkatrészjegyzék másolása" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Paraméterek másolása" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "Paraméterek másolása az eredeti alkatrészről" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "Megjegyzések másolása" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "Megjegyzések másolása az eredeti alkatrészről" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "Kezdeti készlet mennyiség" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Add meg a kezdeti készlet mennyiséget. Ha nulla akkor nem lesz készlet létrehozva." -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "Kezdeti készlet hely" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "Add meg a kezdeti készlet helyét" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "Válassz beszállítót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "Gyártói cikkszám" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "A kiválasztott cég nem érvényes beszállító" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "A kiválasztott cég nem érvényes gyártó" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "Van már ilyen gyártói alkatrész" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "Van már ilyen beszállítói alkatrész" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Alkatrész másolása" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "Kezdeti adatok másolása egy másik alkatrészről" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "Kezdeti készlet" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "Kezdeti készlet mennyiség létrehozása" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "Beszállító információ" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "Kezdeti beszállító adatok hozzáadása" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "Kategória paraméterek másolása" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "Paraméter sablonok másolása a kiválasztott alkatrész kategóriából" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Leltár riport korlátozása bizonyos alkatrészre és variánsra" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Leltár riport korlátozása bizonyos alkatrész kategóriára és az alatta lévőkre" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Leltár riport korlátozása bizonyos készlethelyre és az alatta lévőkre" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "Külső készlet nélkül" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "Külső helyeken lévő készlet nélkül" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "Riport létrehozása" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "Riport fájl létrehozása a számított leltár adatokkal" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "Alaktrészek frissítése" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "Megadott alkatrészek frissítése a számított leltár adatokkal" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "Leltár funkció nincs engedélyezve" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "Számított minimum ár felülbírálása" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "Minimum ár pénzneme" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "Számított maximum ár felülbírálása" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "Maximum ár pénzneme" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "Frissítés" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "Alkatrész árak frissítése" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Megadott pénznem átváltása {default_currency}-re sikertelen" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "A Minimum ár nem lehet nagyobb mint a Maximum ár" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "A Maximum ár nem lehet kisebb mint a Minimum ár" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "Létező adat törlése" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "Örököltekkel együtt" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "Hibás sorok kihagyása" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "Engedély a hibás sorok kihagyására" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "Helyettesítő alkatrészek másolása" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "Meglévő alkatrészjegyzék törlése" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "Nincs megadva alkatrész oszlop" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "Több egyező alkatrész is található" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "Nincs egyező alkatrész" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "Az alkatrész nem lett összetevőként jelölve" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "Mennyiség nincs megadva" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Érvénytelen mennyiség" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "Legalább egy alkatrészjegyzék tétel szükséges" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "Teljes mennyiség" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "Teljes költség min" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "Teljes költség max" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "Leltár riport rendelkezésre áll" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "Egy új leltár riport készen áll a letöltésre" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "Alacsony készlet értesítés" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "A {part.name} alkatrész rendelkezésre álló készlete a megadott minimum alá csökkent" @@ -6712,14 +6711,16 @@ msgid "The BOM this part has been changed, and must be validated" msgstr "A alkatrészhez tartozó alkatrészjegyzék megváltozott és jóvá kell hagyni" #: part/templates/part/bom.html:17 -#, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +#, fuzzy, python-format +#| msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzéket utoljára %(checker)s ellenőrizte %(check_date)s-n" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzék még nincs jóváhagyva." +#, fuzzy +#| msgid "This BOM item has been validated" +msgid "This BOM has not been validated." +msgstr "Ez a BOM tétel jóvá lett hagyva" #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -6830,9 +6831,9 @@ msgid "Add stocktake information" msgstr "Leltár információ hozzáadása" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "Leltár" @@ -7240,7 +7241,7 @@ msgstr "Alkatrész árazás felülbírálása" msgid "Edit" msgstr "Szerkesztés" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7369,11 +7370,11 @@ msgstr "Alkatrész változat létrehozása" msgid "Create a new variant part from this template" msgstr "Új alkatrészváltozat létrehozása ebből a sablonból" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Ismeretlen adatbázis" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" @@ -7381,119 +7382,119 @@ msgstr "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgid "Match References" msgstr "Azonosítók egyeztetése" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "Az {new_part.name} alkatrész importja sikertelen, mert nincsen kategória hozzárendelve" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "Válassz képet az alkatrészhez" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "Alkatrész képe frissítve" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Az alkatrész képe nem található" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "Alkatrész árak" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Nincs megadva művelet" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Nincs egyező művelet" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Nincs egyező vonalkód" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Egyezés vonalkódra" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Ez a vonalkód már egy másik tételé" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "Nem található megfelelő alkatrész adat" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "Nem található megfelelő beszállítói alkatrész" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "Több beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "Beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "Ez a termék már bevételezve" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "Beszállítói vonalkód nem található" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "Multiple matching supplier parts found" msgid "Multiple matching line items found" msgstr "Több beszállítói alkatrész található" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching line items" msgid "No matching line item found" msgstr "Nincs egyező sortétel" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 #, fuzzy #| msgid "Barcode does not match valid stock item" msgid "Barcode does not match an existing stock item" msgstr "Vonalkód nem egyezik egy ismert készlet tétellel sem" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 #, fuzzy #| msgid "Selected stock item does not match BOM line" msgid "Stock item does not match line item" msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "Nincs elegendő" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock item assigned to sales order" msgid "Stock item allocated to sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "No user information" msgid "Not enough information" msgstr "Nincs felhasználói információ" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "A vonalkódhoz több beszállítói alkatrész is tartozik" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "A '{order}' rendeléshez több beszerzési rendelés is tartozik" @@ -7507,11 +7508,11 @@ msgstr "A '{order}' rendeléshez nem tartozik beszerzési rendelés" msgid "Purchase order does not match supplier" msgstr "A beszerzési rendelés nem egyezik a beszállítóval" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "Nem található függőben levő tétel a beszállítói alkatrészhez" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "A tétel bevételezéséhez további információ szükséges" @@ -7529,7 +7530,7 @@ msgstr "Beolvasott vonalkód" msgid "Purchase Order to allocate items against" msgstr "Tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "Beszerzési rendelés nincs függőben" @@ -7537,7 +7538,7 @@ msgstr "Beszerzési rendelés nincs függőben" msgid "PurchaseOrder to receive items against" msgstr "Bevételezési tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "Beszerzési rendelés nincs elküdve" @@ -7545,23 +7546,23 @@ msgstr "Beszerzési rendelés nincs elküdve" msgid "Location to receive items into" msgstr "Bevételezés erre a készlet helyre" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "Struktúrális hely nem választható" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 #, fuzzy #| msgid "PurchaseOrder to allocate items against" msgid "Sales Order to allocate items against" msgstr "Tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 #, fuzzy #| msgid "Purchase order is not pending" msgid "Sales order is not pending" msgstr "Beszerzési rendelés nincs függőben" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 #, fuzzy #| msgid "PurchaseOrder to allocate items against" msgid "Sales order line item to allocate items against" @@ -7573,19 +7574,19 @@ msgstr "Tételekhez rendelendő Beszerzési Rendelés" msgid "Sales order shipment to allocate items against" msgstr "Tételekhez rendelendő Beszerzési Rendelés" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 #, fuzzy #| msgid "Shipment has already been shipped" msgid "Shipment has already been delivered" msgstr "Szállítmány kiszállítva" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 #, fuzzy #| msgid "Quantity to Install" msgid "Quantity to allocate" msgstr "Beépítendő mennyiség" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "Címkenyomtatás sikertelen" @@ -7598,8 +7599,8 @@ msgid "Provides native support for barcodes" msgstr "Alapvető vonalkód támogatást ad" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7607,49 +7608,49 @@ msgstr "Alapvető vonalkód támogatást ad" msgid "InvenTree contributors" msgstr "InvenTree fejlesztők" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree értesítések" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "Integrált kimenő értesítési módszerek" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "Email értesítések engedélyezése" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "Email küldés engedélyezése esemény értesítésekre" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "Slack értesítések engedélyezése" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "Slack channel üzenetek küldésének engedélyezése az esemény értesítésekre" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "Slack bejövő webhook URL" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "URL az üzenetek küldéséhez egy a slack channel-re" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "Link megnyitása" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "InvenTree Pénzváltó" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "Alapértelmezett pénzváltó integráció" @@ -7689,7 +7690,7 @@ msgstr "Szegély" msgid "Print a border around each label" msgstr "Az egyes címkék körüli margó" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "Fekvő" @@ -7705,7 +7706,7 @@ msgstr "Inventree Címke Ív Nyomtató" msgid "Arrays multiple labels onto a single sheet" msgstr "Több címke egy ívre helyezése" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "Címke túl nagy a lapmérethez képest" @@ -7765,113 +7766,113 @@ msgstr "A 'TME' beszállító" msgid "Permission denied: only staff users can install plugins" msgstr "Hozzáférés megtagadva: csak személyzet felhasználók telepíthetnek plugineket" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "Plugin telepítése sikeres" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin telepítve ide: {path}" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "Plugin telepítés sikertelen" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "Plugin beállítás" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "Plugin beállítások" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "Kulcs" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "Plugin kulcsa" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "PluginNeve a pluginnak" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "Aktív-e a plugin" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "Beépítve" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "Példa plugin" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "Beépített plugin" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Plugin" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "Módszer" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "Nincs szerző" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "A '{p}' plugin nem kompatibilis az aktuális applikáció verzióval {v}" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "A pluginhoz minimum {v} verzió kell" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "A pluginhoz maximum {v} verzió kell" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "Beszerzési rendelések engedélyezése" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "Beszerzési rendelések funkcióinak engedélyezése az InvenTree felületén" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "API kulcs" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "Kulcs szükséges a külső API eléréséhez" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Numerikus" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "Egy numerikus beállítás" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "Választás beállításai" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "Egy beállítás több választási lehetőséggel" @@ -7883,35 +7884,35 @@ msgstr "Minta árfolyamváltó plugin" msgid "InvenTree Contributors" msgstr "InvenTree fejlesztők" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "Forrás URL" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Csomag forrása - ez lehet egy registry vagy VCS útvonal" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "Csomag neve" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Plugin csomag neve - verzió megjelölést is tartalmazhat" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "Bővítmény telepítésének megerősítése" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Ez telepíti ezt a plugint az aktuális példányra. A példány karbantartási módba megy." -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "Tlepítés nincs megerősítve" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "Vagy csomag nevet vagy URL-t meg kell adni" @@ -7923,40 +7924,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "Plugin aktiválása" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "Plugin bekapcsolása" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "Nincs érvényes objektum megadva a sablonhoz" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "A '{template}' sablon fájl hiányzik vagy nem érhető el" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "Teszt riport" @@ -7976,103 +7977,103 @@ msgstr "Jogi információk" msgid "Letter" msgstr "„Letter” méret" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Sablon neve" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "Riport sablon fájl" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "Riport sablon leírása" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "Riport verziószáma (automatikusan nő)" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "Lapméret a PDF riportokhoz" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "Jelentés fekvő nézetben" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "Minta a riport fájlnevek előállításához" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "Riport sablon engedélyezve" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "Készlet lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "Beépített tesztekkel együtt" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "Gyártmányba beépített készlet tételek teszt eredményeivel együtt" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "Gyártás szűrők" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "Gyártás lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "Alkatrész szűrők" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "Alkatrész lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "Megrendelés lekérdezés szűrők" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "Vevő rendelés lekérdezés szűrők" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "Visszavétel lekérdezés szűrők" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "Részlet" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "Riport részlet fájl" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "Részlet fájl leírása" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "Eszköz" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "Riport asset fájl" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "Asset fájl leírása" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "készlethely lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)" @@ -8113,7 +8114,7 @@ msgstr "Összesen" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8139,12 +8140,12 @@ msgid "Test Results" msgstr "Teszt eredmények" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "Teszt" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "Eredmény" @@ -8170,7 +8171,7 @@ msgid "Installed Items" msgstr "Beépített tételek" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Sorozatszám" @@ -8179,438 +8180,438 @@ msgstr "Sorozatszám" msgid "Asset file does not exist" msgstr "A fájl nem létezik" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "A képfile nem található" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "part_image elem csak alkatrész példánynál használható" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "company_image elem csak cég példánynál használható" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "Hely ID" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "Hely neve" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Hely elérési út" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "Készlet tétel ID" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "Státuszkód" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "Beszállítói cikkszám" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "Beszállító ID" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "Beszállító neve" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "Vevő ID" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Beépítve ebbe" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "Gyártás ID" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "Vevői rendelés ID" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "Vevői rendelés azonosító" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "Felülvizsgálat szükséges" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "Törlés ha kimerül" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "Lejárati dátum" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "Külső hely" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "Alkatrész fa" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "Lejárat előtt" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "Lejárat után" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "Állott" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "Mennyiség megadása kötelező" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "Egy érvényes alkatrészt meg kell adni" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "A megadott beszállítói alkatrész nem létezik" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "A beszállítói alkatrészhez van megadva csomagolási mennyiség, de a use_pack_size flag nincs beállítva" -#: stock/api.py:846 +#: stock/api.py:913 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:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "Készlethely típus" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "Készlethely típusok" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Alapértelmezett ikon azokhoz a helyekhez, melyeknek nincs ikonja beállítva (válaszható)" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Készlet hely" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Készlethelyek" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Tulajdonos" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Tulajdonos kiválasztása" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "A szerkezeti raktári helyekre nem lehet direktben raktározni, csak az al-helyekre." -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Külső" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "Ez egy külső készlethely" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Helyszín típusa" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "Tárolóhely típus" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Nem lehet ezt a raktári helyet szerkezetivé tenni, mert már vannak itt tételek!" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "A szerkezeti raktári helyre nem lehet készletet felvenni!" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "Virtuális alkatrészből nem lehet készletet létrehozni" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "A beszállítói alkatrész típusa ('{self.supplier_part.part}') mindenképpen {self.part} kellene, hogy legyen" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 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:645 +#: stock/models.py:677 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:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "A tétel nem tartozhat saját magához" -#: stock/models.py:673 +#: stock/models.py:706 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:687 +#: stock/models.py:719 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:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Szülő készlet tétel" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "Kiindulási alkatrész" -#: stock/models.py:719 +#: stock/models.py:755 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:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "Hol található ez az alkatrész?" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 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:745 +#: stock/models.py:786 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:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "Sorozatszám ehhez a tételhez" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "Batch kód ehhez a készlet tételhez" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "Készlet mennyiség" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "Forrás gyártás" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "Gyártás ehhez a készlet tételhez" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Felhasználva ebben" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "Felhasználva ebben a gyártásban" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "Forrás beszerzési rendelés" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "Beszerzés ehhez a készlet tételhez" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "Cél vevői rendelés" -#: stock/models.py:824 +#: stock/models.py:877 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:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "Törlés ha kimerül" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "Készlet tétel törlése ha kimerül" -#: stock/models.py:858 +#: stock/models.py:916 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:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "Alkatrésszé alakítva" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "Az alkatrész nem követésre kötelezett" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "Mennyiség egész szám kell legyen" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "A mennyiség nem haladhatja meg az elérhető készletet ({self.quantity})" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "A sorozatszám egész számok listája kell legyen" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "A sorozatszámok már léteznek" -#: stock/models.py:1513 +#: stock/models.py:1557 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:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "Készlet tétel beépül egy másikba" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "A készlet tétel más tételeket tartalmaz" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon" -#: stock/models.py:1543 +#: stock/models.py:1592 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:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:1741 +#: stock/models.py:1785 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:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "Teszt neve" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "Tesztek megjegyzései" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "Szériaszám túl nagy" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Csomagolási mennyiség használata: a megadott mennyiség ennyi csomag" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "Készlet tétel beszerzési ára, per darab vagy csomag" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "Add meg hány készlet tételt lássunk el sorozatszámmal" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "A mennyiség nem lépheti túl a rendelkezésre álló készletet ({q})" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "Írd be a sorozatszámokat az új tételekhez" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "Cél készlet hely" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "Opcionális megjegyzés mező" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez" @@ -8626,116 +8627,116 @@ msgstr "Beépítendő mennyiség" msgid "Enter the quantity of items to install" msgstr "Adja meg a beépítendő mennyiséget" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "Tranzakció megjegyzés hozzáadása (opcionális)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "A beépítendő mennyiség legalább 1 legyen" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "Készlet tétel nem elérhető" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "A kiválasztott alkatrész nincs az alkatrészjegyzékben" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "A beépítendő mennyiség nem haladhatja meg az elérhető mennyiséget" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "Cél hely a kiszedett tételeknek" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "Válassz alkatrészt amire konvertáljuk a készletet" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "A kiválasztott alkatrész nem megfelelő a konverzióhoz" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Készlet tétel hozzárendelt beszállítói alkatrésszel nem konvertálható" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "Cél hely a visszatérő tételeknek" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "Válaszd ki a státuszváltásra szánt készlet tételeket" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "Nincs készlet tétel kiválasztva" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "Az alkatrésznek értékesíthetőnek kell lennie" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "A tétel egy vevő rendeléshez foglalt" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "A tétel egy gyártási utasításhoz foglalt" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "Vevő akihez rendeljük a készlet tételeket" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "A kiválasztott cég nem egy vevő" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "Készlet hozzárendelés megjegyzései" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "A készlet tételek listáját meg kell adni" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "Készlet összevonás megjegyzései" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "Nem egyező beszállítók megengedése" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 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:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "Nem egyező állapotok megjelenítése" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 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:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "Legalább két készlet tételt meg kell adni" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "Készlet tétel elsődleges kulcs értéke" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "Készlet tétel státusz kódja" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "Készlet tranzakció megjegyzései" @@ -8956,7 +8957,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Ez a készlet tétel lejárt %(item.expiry_date)s-n" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "Lejárt" @@ -9593,7 +9594,7 @@ msgstr "Arány" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Törlés" @@ -12762,7 +12763,7 @@ msgstr "Kivesz" msgid "Add Stock" msgstr "Készlet növelése" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "Hozzáad" @@ -13401,7 +13402,7 @@ msgstr "Értesítések megjelenítése" msgid "New Notifications" msgstr "Új értesítések" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "Admin" @@ -13572,31 +13573,31 @@ msgstr "Igen" msgid "No" msgstr "Nem" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Felhasználók" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Válaszd ki mely felhasználók tartoznak ehhez a csoporthoz" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "Az alábbi felhasználók több csoportnak is tagjai" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Személyes adatok" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Jogosultságok" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "Fontos dátumok" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "A token visszavonva" @@ -13612,15 +13613,15 @@ msgstr "API Token" msgid "API Tokens" msgstr "API Tokenek" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "Token név" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "Egyedi token név" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "Token lejárati dátum" @@ -13632,38 +13633,42 @@ msgstr "Utolsó tevékenység" msgid "Last time the token was used" msgstr "Token utolsó használata" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "Visszavonva" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Jogosultságok" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Csoport" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Nézet" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Jogosultság tételek megtekintéséhez" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Jogosultság tételek hozzáadásához" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Módosítás" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Jogosultság tételek szerkesztéséhez" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Jogosultság tételek törléséhez" + +#, python-format +#~ msgid "The BOM for %(part)s has not been validated." +#~ msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzék még nincs jóváhagyva." diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index d3092fa22d..149413620a 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:46\n" "Last-Translator: \n" "Language-Team: Indonesian\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API endpoint tidak ditemukan" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Pengguna tidak memiliki izin untuk melihat model ini" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Nilai tidak tersedia" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "Detail terkait galat dapat dilihat di panel admin" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Masukkan tanggal" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Masukkan tanggal" msgid "Notes" msgstr "Catatan" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Nilai yang diberikan tidak sesuai dengan pola yang ditentukan: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Masukkan sandi" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Masukkan kata sandi baru" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Konfirmasikan kata sandi" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Konfirmasi sandi baru" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Kata sandi lama" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (ulang)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Konfirmasi alamat email" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Masukkan email yang sama." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Alamat surel utama yang diberikan tidak valid." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Domain surel yang diberikan tidak perbolehkan." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Jumlah yang diberikan tidak valid" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Nomor seri kosong" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Tidak ada nomor seri ditemukan" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Hapus tag-tag HTML dari nilai ini" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Ukuran gambar terlalu besar" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "URL yang diberikan bukan file gambar yang valid" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Surel" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "File tidak ditemukan" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Tautan eksternal tidak ditemukan" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Lampiran" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Pilih file untuk dilampirkan" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Pilih file untuk dilampirkan" msgid "Link" msgstr "Tautan" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Tautan menuju URL eksternal" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Komentar" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Komentar file" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Pengguna" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "tanggal diunggah" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Nama file tidak boleh kosong" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Direktori lampiran tidak valid" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Nama file mengandung karakter yang tidak diperkenankan '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Nama file tidak memiliki ekstensi" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Lampiran dengan nama file ini sudah ada" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Kesalahan merubah nama file" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Pilihan tidak valid" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Pilihan tidak valid" msgid "Name" msgstr "Nama" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Nama" msgid "Description" msgstr "Keterangan" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Keterangan (opsional)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "induk" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Direktori" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Data Barcode" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Data barcode pihak ketiga" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Barcode Hash" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Hash unik data barcode" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Sudah ada barcode yang sama" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Terjadi Kesalahan Server" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Sebuah kesalahan telah dicatat oleh server." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Harus berupa angka yang valid" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Mata Uang" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Nama File" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Nilai tidak valid" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "File data" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Pilih file untuk diunggah" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Jenis file tidak didukung" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Ukuran file terlalu besar" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Tidak ditemukan kolom dalam file" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Tidak ditemukan barisan data dalam file" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Tidak ada barisan data tersedia" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Tidak ada kolom data tersedia" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Kolom yang diperlukan kurang: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Kolom duplikat: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL file gambar external" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Unduhan gambar dari URL external tidak aktif" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Ceko" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Denmark" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Jerman" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Yunani" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Inggris" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Spanyol (Meksiko)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Persia" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Perancis" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Ibrani" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Hungaria" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Itali" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Jepang" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Korea" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Belanda" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norwegia" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polandia" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugis" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugis (Brasil)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Rusia" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Swedia" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Thai" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turki" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnam" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Pengecekan kesehatan sistem InvenTree gagal" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Diletakkan" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Selesai" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Dibatalkan" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Hilang" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Dikembalikan" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Dikirim" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Butuh perhatian" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Rusak" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Hancur" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Ditolak" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -854,23 +853,23 @@ msgstr "Dikembalikan pelanggan" msgid "Production" msgstr "Produksi" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "Bukan kode mata uang yang valid" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Nilai kelebihan tidak boleh negatif" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Kelebihan tidak boleh melebihi 100%" @@ -894,27 +893,27 @@ msgstr "Kelebihan tidak boleh melebihi 100%" msgid "Invalid value for overage" msgstr "Nilai kelebihan tidak valid" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Ubah Informasi User" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Atur Kata Sandi" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Bidang kata sandi tidak cocok" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Kata sandi yang salah" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Informasi Sistem" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Tentang InvenTree" @@ -922,14 +921,14 @@ msgstr "Tentang InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Pesanan harus dibatalkan sebelum dapat dihapus" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "Order Produksi" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Order Produksi" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Referensi Order Produksi" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Produksi induk dari produksi ini" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "Produksi induk dari produksi ini" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "Status pembuatan" msgid "Build status code" msgstr "Kode status pembuatan" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Kode Kelompok" @@ -1140,7 +1139,7 @@ msgstr "Kode Kelompok" msgid "Batch code for this build output" msgstr "Kode kelompok untuk hasil produksi ini" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "Target tanggal selesai" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Target tanggal selesai produksi. Produksi akan menjadi terlambat setelah tanggal ini." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Tanggal selesai" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Pengguna yang menyerahkan order ini" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "Hasil produksi tidak sesuai dengan order produksi" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Jumlah harus lebih besar daripada nol" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "Item produksi harus menentukan hasil produksi karena bagian utama telah msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Item stok teralokasikan terlalu banyak" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Jumlah yang dialokasikan harus lebih dari nol" @@ -1338,9 +1337,9 @@ msgstr "Jumlah harus 1 untuk stok dengan nomor seri" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "Jumlah bagian yang dapat dilacak harus berupa angka bulat" 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:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Nomor Seri" @@ -1422,7 +1421,7 @@ msgstr "Alokasikan nomor seri secara otomatis" msgid "Automatically allocate required items with matching serial numbers" msgstr "Alokasikan item yang diperlukan dengan nomor seri yang sesuai secara otomatis" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "Nomor-nomor seri berikut sudah ada atau tidak valid" @@ -1430,10 +1429,10 @@ msgstr "Nomor-nomor seri berikut sudah ada atau tidak valid" msgid "A list of build outputs must be provided" msgstr "Daftar hasil pesanan harus disediakan" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "Lokasi hasil pesanan yang selesai" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "Terima bahwa stok item tidak teralokasikan sepenuhnya ke pesanan ini" msgid "Required stock has not been fully allocated" msgstr "Stok yang diperlukan belum teralokasikan sepenuhnya" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Terima Tidak Selesai" @@ -1581,11 +1580,11 @@ msgstr "" 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:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "Item harus tersedia dalam stok" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Jumlah tersedia ({q}) terlampaui" @@ -1598,7 +1597,7 @@ msgstr "Hasil produksi harus ditentukan untuk mengalokasikan bagian yang terlaca 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:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Item yang dialokasikan harus disediakan" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Surel diperlukan" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "Item tagihan material" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,115 +7374,115 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Tidak ada tindakan yang ditentukan" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Aksi tidak ditemukan" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "No matching action found" msgid "Multiple matching line items found" msgstr "Aksi tidak ditemukan" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching action found" msgid "No matching line item found" msgstr "Aksi tidak ditemukan" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Stock item allocated to sales order" msgstr "Jumlah stok yang dialokasikan ke produksi" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "Edit User Information" msgid "Not enough information" msgstr "Ubah Informasi User" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7498,11 +7496,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7518,7 +7516,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7526,7 +7524,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7534,19 +7532,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7554,19 +7552,19 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 #, fuzzy #| msgid "This build output has already been completed" msgid "Shipment has already been delivered" msgstr "Hasil produksi ini sudah diselesaikan" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Quantity to allocate" msgstr "Jumlah stok yang dialokasikan ke produksi" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7579,8 +7577,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7588,49 +7586,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "Aktifkan surel pemberitahuan" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7670,7 +7668,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7686,7 +7684,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7746,113 +7744,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7864,35 +7862,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7904,40 +7902,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7957,103 +7955,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8094,7 +8092,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8120,12 +8118,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8151,7 +8149,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8160,438 +8158,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "Lampiran perlu diunggah untuk tes ini" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8607,116 +8605,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8937,7 +8935,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9574,7 +9572,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12743,7 +12741,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13382,7 +13380,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13553,31 +13551,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Data pribadi" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13593,15 +13591,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13613,38 +13611,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 2b7f3e00e3..994ba6a4e6 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-23 07:46\n" "Last-Translator: \n" "Language-Team: Italian\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "Endpoint API non trovato" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "L'utente non ha i permessi per vedere questo modello" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Nessun valore specificato" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Impossibile convertire {original} in {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Quantità fornita non valida" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Quantità fornita non valida ({exc})" @@ -47,22 +47,22 @@ msgstr "Quantità fornita non valida ({exc})" 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:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Inserisci la data" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Inserisci la data" msgid "Notes" msgstr "Note" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Il valore '{name}' non è nel formato del pattern" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Il valore fornito non corrisponde al modello richiesto: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Inserire la password" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Inserire una nuova password" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Conferma la password" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Conferma la nuova password" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Vecchia password" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (ancora)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Conferma indirizzo email" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "È necessario digitare la stessa e-mail ogni volta." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "L'indirizzo email principale fornito non è valido." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "L'indirizzo di posta elettronica fornito non è approvato." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "La registrazione è disabilitata." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Quantità inserita non valida" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Numero seriale vuoto" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Seriale Duplicato" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Nessun numero di serie trovato" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Rimuovi i tag HTML da questo valore" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Errore di connessione" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Il server ha risposto con un codice di stato non valido" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Si è verificata un'eccezione" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Il server ha risposto con valore Content-Length non valido" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Immagine troppo grande" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Il download dell'immagine ha superato la dimensione massima" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Il server remoto ha restituito una risposta vuota" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Email" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Metadati Plugin" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "Campo di metadati JSON, da utilizzare con plugin esterni" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Schema formattato impropriamente" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Formato chiave sconosciuta" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Formato chiave mancante" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Il campo di riferimento non può essere vuoto" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Il campo deve corrispondere al modello richiesto" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Numero di riferimento troppo grande" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "File mancante" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Link esterno mancante" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Allegato" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Seleziona file da allegare" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Seleziona file da allegare" msgid "Link" msgstr "Collegamento" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Link a URL esterno" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Commento" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Commento del file" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Utente" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "data caricamento" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Il nome del file non deve essere vuoto" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Directory allegati non valida" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Il nome del file contiene caratteri non validi '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Nome file estensione mancante" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Esiste già un allegato con questo nome di file" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Errore nella rinominazione del file" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Scelta non valida" msgid "Name" msgstr "Nome" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Nome" msgid "Description" msgstr "Descrizione" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Descrizione (opzionale)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "genitore" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Percorso" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Note di Markdown (opzionale)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Dati del Codice a Barre" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Dati Codice a Barre applicazioni di terze parti" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Codice a Barre" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Codice univoco del codice a barre" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Trovato codice a barre esistente" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Errore del server" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Deve essere un numero valido" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Selezionare la valuta dalle opzioni disponibili" @@ -463,16 +462,16 @@ msgstr "Selezionare la valuta dalle opzioni disponibili" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Nome del file" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Valore non valido" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "File dati" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Seleziona un file per il caricamento" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Formato file non supportato" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "File troppo grande" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Nessun colonna trovata nel file" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Nessuna riga di dati trovata nel file" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Nessun dato fornito" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Nessuna colonna di dati fornita" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Colonna richiesta mancante: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Colonna duplicata: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL del file immagine remota" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Il download delle immagini da URL remoto non è abilitato" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Ceco" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Danese" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Tedesco" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Greco" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Inglese" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Spagnolo (Messicano)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Persiano" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Francese" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Ungherese" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Olandese" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polacco" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portoghese" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portoghese (Brasile)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Sloveno" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Svedese" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Thailandese" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Controllo in background non riuscito" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Server di posta non configurato" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Controlli di sistema InvenTree falliti" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "In attesa" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Inviato" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Completo" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Annullato" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Perso" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Reso" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "In corso" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Spedito" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Attenzione necessaria" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Danneggiato" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Distrutto" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Respinto" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "In quarantena" @@ -854,23 +853,23 @@ msgstr "Restituito dal cliente" msgid "Production" msgstr "Produzione" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Indietro" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Riparare" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Sostituire" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Rimborso" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Rifiuta" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "Non è un codice valuta valido" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Il sovra-valore non può essere negativo" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "L'eccesso non deve superare il 100%" @@ -894,27 +893,27 @@ msgstr "L'eccesso non deve superare il 100%" msgid "Invalid value for overage" msgstr "Valore non valido per eccedenza" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Modifica informazioni utente" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Imposta Password" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Le password devono coincidere" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Password inserita non corretta" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Informazioni sistema" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Informazioni Su InvenTree" @@ -922,14 +921,14 @@ msgstr "Informazioni Su InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "La produzione deve essere annullata prima di poter essere eliminata" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Consumabile" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "Opzionale" msgid "Tracked" msgstr "Monitorato" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Allocato" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "Ordine di Produzione" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Ordini di Produzione" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Riferimento Ordine Di Produzione" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Ordine di produzione a cui questa produzione viene assegnata" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "Stato Produzione" msgid "Build status code" msgstr "Codice stato di produzione" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Codice Lotto" @@ -1140,7 +1139,7 @@ msgstr "Codice Lotto" msgid "Batch code for this build output" msgstr "Codice del lotto per questa produzione" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "Data completamento obiettivo" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data di completamento della produzione. Dopo tale data la produzione sarà in ritardo." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Data di completamento" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Utente che ha emesso questo ordine di costruzione" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "Utente o gruppo responsabile di questo ordine di produzione" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "Priorità di produzione" msgid "Priority of this build order" msgstr "Priorità di questo ordine di produzione" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "L'output della produzione non corrisponde all'ordine di compilazione" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "L'elemento di compilazione deve specificare un output poiché la parte p msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" @@ -1338,9 +1337,9 @@ msgstr "La quantità deve essere 1 per lo stock serializzato" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "Quantità totale richiesta per articoli rintracciabili" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Quantità totale richiesta, poiché la fattura dei materiali contiene articoli rintracciabili" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Codice Seriale" @@ -1422,7 +1421,7 @@ msgstr "Numeri di Serie Assegnazione automatica" msgid "Automatically allocate required items with matching serial numbers" msgstr "Assegna automaticamente gli articoli richiesti con i numeri di serie corrispondenti" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "I seguenti numeri di serie sono già esistenti o non sono validi" @@ -1430,10 +1429,10 @@ msgstr "I seguenti numeri di serie sono già esistenti o non sono validi" msgid "A list of build outputs must be provided" msgstr "Deve essere fornito un elenco dei risultati di produzione" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "Posizione per gli output di build completati" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "Accetta che gli elementi in giacenza non sono stati completamente assegn msgid "Required stock has not been fully allocated" msgstr "La giacenza richiesta non è stata completamente assegnata" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Accetta Incompleta" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "gli elementi degli articoli della distinta base devono puntare alla stessa parte dell'ordine di produzione" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "L'articolo deve essere disponibile" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantità disponibile ({q}) superata" @@ -1598,7 +1597,7 @@ msgstr "L'output di produzione deve essere specificato per l'ubicazione delle pa msgid "Build output cannot be specified for allocation of untracked parts" msgstr "L'output di produzione non deve essere specificato per l'ubicazione delle parti non tracciate" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Deve essere indicata l'allocazione dell'articolo" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Lo stock non è stato completamente assegnato a questo ordine di produzione" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "Outputs Completati" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "Risorse di magazzino" msgid "Stock can be taken from any available location." msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destinazione" @@ -1865,7 +1864,7 @@ msgstr "Posizione di destinazione non specificata" msgid "Allocated Parts" msgstr "Articoli Assegnati" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "Errore nella lettura del file (dimensione errata)" msgid "Error reading file (data could be corrupted)" msgstr "Errore di lettura del file (i dati potrebbero essere danneggiati)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "File" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Seleziona file da caricare" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} File" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "Seleziona il file {name} da caricare" @@ -2046,1041 +2045,1041 @@ msgstr "Aggiornato" msgid "Timestamp of last update" msgstr "Orario dell'ultimo aggiornamento" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Codice unico del progetto" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Descrizione del progetto" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "Valore impostazioni" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "Il valore specificato non è un opzione valida" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "Il valore deve essere un valore booleano" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "Il valore deve essere un intero" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "La stringa chiave deve essere univoca" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Nessun gruppo" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Un dominio vuoto non è consentito." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nome dominio non valido: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Riavvio richiesto" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "È stata modificata un'impostazione che richiede un riavvio del server" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "Nome Istanza Del Server" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "Descrittore stringa per l'istanza del server" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Utilizza nome istanza" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "Usa il nome dell'istanza nella barra del titolo" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "Limita visualizzazione `Informazioni`" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "Mostra la modalità `Informazioni` solo ai superusers" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Nome azienda" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Nome interno dell'azienda" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "URL Base" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "URL di base per l'istanza del server" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Valuta predefinita" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "giorni" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Scarica dall'URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Consenti il download di immagini e file remoti da URL esterno" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Limite Dimensione Download" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Dimensione massima consentita per il download dell'immagine remota" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "User-agent utilizzato per scaricare dall'URL" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Consenti di sovrascrivere l'user-agent utilizzato per scaricare immagini e file da URL esterno (lasciare vuoto per il predefinito)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Richiesta conferma" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Richiede una conferma esplicita dell'utente per una determinata azione." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Profondità livelli" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profondità predefinita per la visualizzazione ad albero. I livelli più in alto possono essere caricati più lentamente quando necessari." -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Aggiorna intervallo di controllo" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "Quanto spesso controllare gli aggiornamenti (impostare a zero per disabilitare)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Backup automatico" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Abilita il backup automatico di database e file multimediali" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Intervallo Di Backup Automatico" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Definisci i giorni intercorrenti tra un backup automatico e l'altro" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "I risultati delle attività in background verranno eliminati dopo un determinato numero di giorni" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "I log di errore verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Le notifiche dell'utente verranno eliminate dopo il numero di giorni specificato" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Supporto Codice A Barre" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Codice a barre inserito scaduto" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Tempo di ritardo di elaborazione codice a barre" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Codice a Barre Supporto Webcam" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "Consenti la scansione del codice a barre tramite webcam nel browser" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "Abilita il campo revisione per l'articolo" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "Schema di espressione regolare per l'articolo corrispondente IPN" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Consenti duplicati IPN" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "Permetti a più articoli di condividere lo stesso IPN" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Permetti modifiche al part number interno (IPN)" -#: common/models.py:1310 +#: common/models.py:1358 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:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Copia I Dati Della distinta base dell'articolo" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "Copia i dati della Distinta Base predefinita quando duplichi un articolo" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "Copia I Dati Parametro dell'articolo" -#: common/models.py:1324 +#: common/models.py:1370 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:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "Copia I Dati dell'Articolo Test" -#: common/models.py:1331 +#: common/models.py:1376 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:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Copia Template Parametri Categoria" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "Copia i modelli dei parametri categoria quando si crea un articolo" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Modello" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Gli articoli sono modelli per impostazione predefinita" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Assemblaggio" -#: common/models.py:1352 +#: common/models.py:1394 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:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Componente" -#: common/models.py:1359 +#: common/models.py:1400 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:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Acquistabile" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Vendibile" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Gli articoli sono acquistabili per impostazione predefinita" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Tracciabile" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Gli articoli sono tracciabili per impostazione predefinita" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Virtuale" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Gli articoli sono virtuali per impostazione predefinita" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Mostra l'importazione nelle viste" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "Mostra la procedura guidata di importazione in alcune viste articoli" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Mostra articoli correlati" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Visualizza parti correlate per ogni articolo" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Dati iniziali dello stock" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Consentire la creazione di uno stock iniziale quando si aggiunge una nuova parte" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Dati iniziali del fornitore" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Consentire la creazione dei dati iniziali del fornitore quando si aggiunge una nuova parte" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Formato di visualizzazione del nome articolo" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Formato per visualizzare il nome dell'articolo" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Icona predefinita Categoria Articolo" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Icona predefinita Categoria Articolo (vuoto significa nessuna icona)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Usa Prezzi Fornitore" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Includere le discontinuità di prezzo del fornitore nei calcoli generali dei prezzi" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Ignora la Cronologia Acquisti" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Cronologia dei prezzi dell'ordine di acquisto del fornitore superati con discontinuità di prezzo" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "Utilizzare i prezzi degli articoli in stock" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Utilizzare i prezzi dei dati di magazzino inseriti manualmente per il calcolo dei prezzi" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "Età dei prezzi degli articoli in stock" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Escludere dal calcolo dei prezzi gli articoli in giacenza più vecchi di questo numero di giorni" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "Utilizza Variazione di Prezzo" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "Includi la variante dei prezzi nei calcoli dei prezzi complessivi" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "Solo Varianti Attive" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "Utilizza solo articoli di varianti attive per calcolare i prezzi delle varianti" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "Numero di giorni prima che il prezzo dell'articolo venga aggiornato automaticamente" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Prezzi interni" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "Abilita prezzi interni per gli articoli" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Sovrascrivi Prezzo Interno" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "Se disponibile, i prezzi interni sostituiscono i calcoli della fascia di prezzo" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Abilita stampa etichette" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Abilita la stampa di etichette dall'interfaccia web" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "Etichetta Immagine DPI" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Risoluzione DPI quando si generano file di immagine da fornire ai plugin di stampa per etichette" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Abilita Report di Stampa" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Abilita generazione di report di stampa" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Modalità Debug" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Genera report in modalità debug (output HTML)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Dimensioni pagina" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Dimensione predefinita della pagina per i report PDF" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Abilita Rapporto di Prova" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Abilita generazione di stampe di prova" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Allega Rapporto di Prova" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Quando si stampa un rapporto di prova, allegare una copia del rapporto di prova all'elemento di magazzino associato" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "Seriali Unici Globali" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "I numeri di serie per gli articoli di magazzino devono essere univoci" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Auto Riempimento Numeri Seriali" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Auto riempimento numeri nel modulo" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Elimina scorte esaurite" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Determina il comportamento predefinito quando un elemento stock è esaurito" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "Modello Codice a Barre" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "Modello per la generazione di codici batch predefiniti per gli elementi stock" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "Scadenza giacenza" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "Abilita funzionalità di scadenza della giacenza" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "Vendi giacenza scaduta" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "Consenti la vendita di stock scaduti" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "Tempo di Scorta del Magazzino" -#: common/models.py:1629 +#: common/models.py:1648 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:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "Crea giacenza scaduta" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "Permetti produzione con stock scaduto" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "Controllo della proprietà della giacenza" -#: common/models.py:1644 +#: common/models.py:1662 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:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "Icona Predefinita Ubicazione di Magazzino" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "Icona Predefinita Ubicazione di Magazzino (vuoto significa nessuna icona)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Produzione" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di produzione" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "Modello Di Riferimento Ordine Di Vendita" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di vendita" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "Spedizione Predefinita Ordine Di Vendita" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "Abilita la creazione di spedizioni predefinite con ordini di vendita" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "Modifica Ordini Di Vendita Completati" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di vendita dopo che sono stati spediti o completati" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "Modello di Riferimento Ordine D'Acquisto" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modello richiesto per generare il campo di riferimento ordine di acquisto" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "Modifica Ordini Di Acquisto Completati" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Consenti la modifica degli ordini di acquisto dopo che sono stati spediti o completati" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Abilita password dimenticata" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Abilita la funzione password dimenticata nelle pagine di accesso" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Abilita registrazione" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "SSO abilitato" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "Abilita SSO nelle pagine di accesso" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "Abilita registrazione SSO" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Abilita l'auto-registrazione tramite SSO per gli utenti nelle pagine di accesso" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Email richiesta" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "Riempimento automatico degli utenti SSO" -#: common/models.py:1763 +#: common/models.py:1781 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:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "Posta due volte" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "Al momento della registrazione chiedere due volte all'utente l'indirizzo di posta elettronica" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Password due volte" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "Al momento della registrazione chiedere agli utenti due volte l'inserimento della password" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Domini consentiti" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Gruppo iscrizione" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "Gruppo a cui i nuovi utenti vengono assegnati al momento della registrazione" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "Applica MFA" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Gli utenti devono utilizzare la sicurezza a due fattori." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Controlla i plugin all'avvio" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controlla che tutti i plugin siano installati all'avvio - abilita in ambienti contenitore" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "Abilita l'integrazione URL" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "Attiva plugin per aggiungere percorsi URL" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "Attiva integrazione navigazione" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "Abilita i plugin per l'integrazione nella navigazione" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "Abilita l'app integrata" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "Abilita plugin per aggiungere applicazioni" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "Abilita integrazione pianificazione" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "Abilita i plugin per eseguire le attività pianificate" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "Abilita eventi integrati" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "Abilita plugin per rispondere agli eventi interni" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "Funzionalità Dell'Inventario" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Abilita la funzionalità d'inventario per la registrazione dei livelli di magazzino e il calcolo del valore di magazzino" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "Inventario periodico automatico" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Numero di giorni tra la registrazione automatica dell'inventario (imposta 0 per disabilitare)" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "I rapporti d'inventario verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Mostra articoli sottoscritti" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Mostra gli articoli sottoscritti nella homepage" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Mostra gli ultimi articoli sulla homepage" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Mostra distinta base non convalidata" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "Mostra le distinte base che attendono la convalida sulla homepage" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Mostra le modifiche recenti alle giacenze" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "Mostra le giacenze modificate di recente nella homepage" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Mostra disponibilità scarsa delle giacenze" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Mostra disponibilità scarsa degli articoli sulla homepage" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Mostra scorte esaurite" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Mostra disponibilità scarsa delle scorte degli articoli sulla homepage" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Mostra scorte necessarie" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "Mostra le scorte degli articoli necessari per la produzione sulla homepage" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Mostra scorte esaurite" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Mostra gli articoli stock scaduti nella home page" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Mostra scorte obsolete" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Mostra gli elementi obsoleti esistenti sulla home page" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Mostra produzioni in attesa" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Mostra produzioni in attesa sulla homepage" @@ -3092,450 +3091,450 @@ msgstr "Mostra produzioni in ritardo" msgid "Show overdue builds on the homepage" msgstr "Mostra produzioni in ritardo sulla home page" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "Mostra ordini di produzione inevasi" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "Mostra ordini di produzione inevasi sulla home page" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "Mostra Ordini di Produzione in ritardo" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "Mostra Ordini di Produzione in ritardo sulla home page" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "Mostra Ordini di Vendita inevasi" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "Mostra Ordini di Vendita inevasi sulla home page" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "Mostra Ordini di Vendita in ritardo" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "Mostra Ordini di Vendita in ritardo sulla home page" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Mostra Notizie" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Mostra notizie sulla home page" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2082 +#: common/models.py:2076 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:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "Stampante per etichette predefinita" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "Configura quale stampante di etichette deve essere selezionata per impostazione predefinita" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2096 +#: common/models.py:2092 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:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Cerca Articoli" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "Mostra articoli della ricerca nella finestra di anteprima" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "Mostra articoli del fornitore nella finestra di anteprima" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Cerca Articoli Produttore" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "Mostra articoli del produttore nella finestra di anteprima" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "Escludi articoli inattivi dalla finestra di anteprima della ricerca" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "Cerca Categorie" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "Mostra categorie articolo nella finestra di anteprima di ricerca" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "Cerca Giacenze" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "Mostra articoli in giacenza nella finestra di anteprima della ricerca" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "Nascondi elementi non disponibili" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "Escludi gli elementi stock che non sono disponibili dalla finestra di anteprima di ricerca" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "Cerca Ubicazioni" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "Mostra ubicazioni delle giacenze nella finestra di anteprima di ricerca" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "Cerca Aziende" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "Mostra le aziende nella finestra di anteprima di ricerca" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Cerca Ordini Di Produzione" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "Mostra gli ordini di produzione nella finestra di anteprima di ricerca" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "Cerca Ordini di Acquisto" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "Mostra gli ordini di acquisto nella finestra di anteprima di ricerca" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "Escludi Ordini D'Acquisto Inattivi" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "Escludi ordini di acquisto inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Cerca Ordini Di Vendita" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "Visualizzazione degli ordini di vendita nella finestra di anteprima della ricerca" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "Escludi Ordini Di Vendita Inattivi" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "Escludi ordini di vendita inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Cerca Ordini Di Reso" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "Numero di risultati da visualizzare in ciascuna sezione della finestra di anteprima della ricerca" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "Ricerca con regex" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Mostra quantità nei moduli" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "Visualizzare la quantità di pezzi disponibili in alcuni moduli" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "Il tasto Esc chiude i moduli" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "Utilizzare il tasto Esc per chiudere i moduli modali" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Barra di navigazione fissa" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "La posizione della barra di navigazione è fissata nella parte superiore dello schermo" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Formato Data" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Formato predefinito per visualizzare le date" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Programmazione Prodotto" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Mostra informazioni sulla pianificazione del prodotto" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventario Prodotto" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Visualizza le informazioni d'inventario dell'articolo (se la funzionalità d'inventario è abilitata)" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "Lunghezza Stringa Tabella" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "Quantità prezzo limite" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Prezzo" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "Prezzo unitario in quantità specificata" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "Scadenza" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "Scadenza in cui questa notifica viene ricevuta" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "Nome per questa notifica" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Attivo" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "È questa notifica attiva" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "Token" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "Token per l'accesso" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Segreto" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "Segreto condiviso per HMAC" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "ID Messaggio" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "Identificatore unico per questo messaggio" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Host" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "Host da cui questo messaggio è stato ricevuto" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Intestazione" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "Intestazione di questo messaggio" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Contenuto" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "Contenuto di questo messaggio" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "Scadenza in cui questo messaggio è stato ricevuto" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "Lavorato il" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "Il lavoro su questo messaggio è terminato?" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "Id" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titolo" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Pubblicato" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autore" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Riepilogo" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "Letto" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "Queste notizie sull'elemento sono state lette?" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "Queste notizie sull'elemento sono state lette?" msgid "Image" msgstr "Immagine" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "File immagine" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Nuovo {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "Un nuovo ordine è stato creato e assegnato a te" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "Elemento ricevuto" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "Gli elementi sono stati ricevuti a fronte di un ordine di acquisto" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "Errore generato dal plugin" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Carica file" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "Carica file" msgid "Match Fields" msgstr "Abbina Campi" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "Elementi corrispondenti" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "Corrispondenza campi non riuscita" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Articoli importati" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "Articoli importati" msgid "Previous Step" msgstr "Passaggio Precedente" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Descrizione azienda" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "Descrizione dell'azienda" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Sito Web" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Sito web aziendale" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Telefono" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Numero di telefono di contatto" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Indirizzo email" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Contatto" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Punto di contatto" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Collegamento alle informazioni aziendali esterne" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "è un cliente" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Vendi oggetti a questa azienda?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "è un fornitore" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Acquistate articoli da questa azienda?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "è un produttore" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Questa azienda produce articoli?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Valuta predefinita utilizzata per questa azienda" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Azienda" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Articolo di base" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Seleziona articolo" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "Seleziona articolo" msgid "Manufacturer" msgstr "Produttore" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Seleziona Produttore" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "Seleziona Produttore" msgid "MPN" msgstr "Codice articolo produttore (MPN)" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Codice articolo produttore" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "URL dell'articolo del fornitore" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "Descrizione articolo costruttore" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Codice articolo produttore" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Nome parametro" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Valore" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Valore del parametro" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Unità" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Unità parametri" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo msgid "Supplier" msgstr "Fornitore" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Seleziona fornitore" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Unità di giacenza magazzino fornitore" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Selezionare un produttore" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "URL dell'articolo del fornitore" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "Descrizione articolo fornitore" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "Descrizione articolo fornitore" msgid "Note" msgstr "Nota" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "costo base" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Confezionamento" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "Imballaggio del pezzo" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "Imballaggio del pezzo" msgid "Pack Quantity" msgstr "Quantità Confezione" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "multiplo" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "Ordine multiplo" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "Quantità disponibile dal fornitore" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "Disponibilità Aggiornata" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "Data dell’ultimo aggiornamento dei dati sulla disponibilità" @@ -4067,10 +4066,10 @@ msgstr "Scarica immagine dall'URL" msgid "Delete image" msgstr "Elimina immagine" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "Cliente" msgid "Uses default currency" msgstr "Valuta predefinita" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "Giacenza Fornitore" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Ordine di acquisto" @@ -4188,7 +4187,7 @@ msgstr "Nuovo Ordine di Acquisto" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Ordini di Vendita" @@ -4213,7 +4212,7 @@ msgstr "Assegna Giacenza" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "Ordini di reso" @@ -4281,7 +4280,7 @@ msgstr "Nessuna informazione sul produttore disponibile" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Fornitori" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "Elimina Articolo Fornitore" msgid "No supplier information available" msgstr "Nessuna informazione sul fornitore disponibile" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "Collega Codice a Barre con l'Articolo Fornitore" msgid "Update Part Availability" msgstr "Aggiorna Disponibilità Articolo" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Articoli in magazzino" @@ -4471,11 +4470,11 @@ msgstr "Aziende" msgid "New Company" msgstr "Nuova Azienda" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Nome etichetta" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Descrizione etichetta" @@ -4487,7 +4486,7 @@ msgstr "Etichetta" msgid "Label template file" msgstr "File modello etichetta" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Abilitato" @@ -4511,7 +4510,7 @@ msgstr "Altezza [mm]" msgid "Label height, specified in mm" msgstr "Larghezza dell'etichetta, specificata in mm" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Formato del nome file" @@ -4519,14 +4518,14 @@ msgstr "Formato del nome file" msgid "Pattern for generating label filenames" msgstr "Formato del nome file per la generazione etichetta" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Filtri" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "Prezzo Totale" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "Nessun ordine di acquisto corrispondente trovato" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "Nessun ordine di acquisto corrispondente trovato" msgid "Purchase Order" msgstr "Ordine D'Acquisto" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "Ordine D'Acquisto" msgid "Return Order" msgstr "Restituisci ordine" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Sconosciuto" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "Prezzo totale dell'ordine" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "Il contatto non corrisponde all'azienda selezionata" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "Descrizione dell'ordine (opzionale)" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "Seleziona il codice del progetto per questo ordine" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Collegamento a un sito web esterno" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Data prevista per la consegna dell'ordine. L'ordine scadrà dopo questa data." -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Creato Da" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Utente o gruppo responsabile di questo ordine" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "Punto di contatto per questo ordine" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Riferimento ordine" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Stato ordine d'acquisto" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Azienda da cui sono stati ordinati gli articoli" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "Riferimento fornitore" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "Codice di riferimento ordine fornitore" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "ricevuto da" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Data di emissione" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Data di emissione ordine" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "Data ordine completato" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "Il fornitore dell'articolo deve corrispondere al fornitore dell'ordine di produzione" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "La quantità deve essere un numero positivo" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Azienda da cui sono stati ordinati gli elementi" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Riferimento Cliente " -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "Codice di riferimento Ordine del Cliente" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Data di spedizione" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "spedito da" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "L'ordine non può essere completato perché nessun articolo è stato assegnato" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "Solo un ordine aperto può essere contrassegnato come completo" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "L'ordine non può essere completato in quanto ci sono spedizioni incomplete" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "L'ordine non può essere completato perché ci sono elementi di riga incompleti" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Quantità Elementi" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "Riferimento Linea Elemento" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "Note linea elemento" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data di destinazione per questa voce di riga (lasciare vuoto per utilizzare la data di destinazione dall'ordine)" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Contesto" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "Contesto aggiuntivo per questa voce" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "Prezzo unitario" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "L'articolo del fornitore deve corrispondere al fornitore" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "eliminato" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Ordine" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "Articolo Fornitore" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "Articolo Fornitore" msgid "Received" msgstr "Ricevuto" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "Numero di elementi ricevuti" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Prezzo di Acquisto" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Prezzo di acquisto unitario" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "Dove l'Acquirente desidera che questo elemento venga immagazzinato?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "Un articolo virtuale non può essere assegnato ad un ordine di vendita" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "Solo gli articoli vendibili possono essere assegnati a un ordine di vendita" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Prezzo di Vendita" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Prezzo unitario di vendita" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Quantità spedita" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Data di spedizione" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Verificato Da" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Utente che ha controllato questa spedizione" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Spedizione" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Numero di spedizione" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Numero di monitoraggio" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Informazioni di monitoraggio della spedizione" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "Numero Fattura" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "Numero di riferimento per la fattura associata" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "La spedizione è già stata spedita" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "La spedizione non ha articoli di stock assegnati" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "L'elemento di magazzino non è stato assegnato" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "Impossibile allocare l'elemento stock a una linea con un articolo diverso" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "Impossibile allocare stock a una riga senza un articolo" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "La quantità deve essere 1 per l'elemento serializzato" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "L'ordine di vendita non corrisponde alla spedizione" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "La spedizione non corrisponde all'ordine di vendita" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Linea" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "Riferimento della spedizione ordine di vendita" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Elemento" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "Seleziona elemento stock da allocare" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Inserisci la quantità assegnata alla giacenza" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "Seleziona l'elemento da restituire dal cliente" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "Data di ricezione" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Risultati" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "L'ordine non può essere cancellato" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "Consenti di chiudere l'ordine con elementi di riga incompleti" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "L'ordine ha elementi di riga incompleti" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "L'ordine non è aperto" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Valuta prezzo d'acquisto" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "L'articolo del fornitore deve essere specificato" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "L'ordine di acquisto deve essere specificato" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "Il fornitore deve essere abbinato all'ordine d'acquisto" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "L'ordine di acquisto deve essere abbinato al fornitore" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "Elemento Riga" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "L'elemento di riga non corrisponde all'ordine di acquisto" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "Inserisci il codice univoco per gli articoli in arrivo" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Inserisci i numeri di serie per gli articoli stock in arrivo" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Codice a Barre" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "Codice a barre scansionato" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "Il codice a barre è già in uso" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "Deve essere fornita una quantità intera per gli articoli rintracciabili" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "Gli elementi di linea devono essere forniti" @@ -5040,51 +5039,51 @@ msgstr "La destinazione deve essere specificata" msgid "Supplied barcode values must be unique" msgstr "I valori dei codici a barre forniti devono essere univoci" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "Valuta prezzo di vendita" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "Nessun dettaglio di spedizione fornito" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "L'elemento di riga non è associato a questo ordine" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "La quantità deve essere positiva" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Inserisci i numeri di serie da assegnare" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "La spedizione è già stata spedita" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "La spedizione non è associata con questo ordine" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "Nessuna corrispondenza trovata per i seguenti numeri di serie" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "I seguenti numeri di serie sono già assegnati" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "Ordine D'Acquisto in ritardo" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "L'ordine d'acquisto {po} è in ritardo" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "Ordini Di Vendita in ritardo" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "L'ordine di vendita {so} è ora in ritardo" @@ -5478,579 +5477,579 @@ msgstr "Nuova spedizione" msgid "Match Supplier Parts" msgstr "Corrispondenza Articoli del Fornitore" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "Ordine di Vendita non trovato" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Prezzo non trovato" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Aggiornato {part} prezzo unitario a {price}" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Aggiornato {part} unità prezzo a {price} e quantità a {qty}" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "Codice Articolo" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Nome Articolo" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "Descrizione Articolo" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN - Numero di riferimento interno" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revisione" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Parole Chiave" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "Id Categoria" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "Nome Categoria" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "Posizione Predefinita ID" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "ID Fornitore Predefinito" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante Di" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Scorta Minima" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "In magazzino" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Ordinato" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Utilizzato In" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "In Costruzione" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Costo Minimo" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Costo Massimo" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "ID principale" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "Nome Principale" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Percorso Categoria" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Articoli" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "Livello Distinta Base" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "ID Elemento Distinta Base" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "IPN Principale" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "IPN Articolo" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Prezzo Minimo" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Prezzo Massimo" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "Ordine D'Acquisto In Arrivo" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "Ordine di Vendita in Uscita" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "Giacenza prodotta dall'Ordine di Costruzione" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "Giacenza richiesta per l'Ordine di Produzione" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "Valido" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "Convalida l'intera Fattura dei Materiali" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "Questa opzione deve essere selezionata" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Posizione Predefinita" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Giacenze Totali" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Disponibilità in magazzino" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "Digita la quantità per il calcolo del prezzo" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Categorie Articolo" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Posizione predefinita per gli articoli di questa categoria" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strutturale" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Le parti non possono essere assegnate direttamente a una categoria strutturale, ma possono essere assegnate a categorie subordinate." -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Keywords predefinite" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Parole chiave predefinite per gli articoli in questa categoria" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Icona" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Icona (facoltativa)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Non puoi rendere principale questa categoria di articoli perché alcuni articoli sono già assegnati!" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "Scelta non valida per l'articolo principale" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "Esiste già un elemento stock con questo numero seriale" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "Un articolo con questo Nome, IPN e Revisione esiste già." -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "Gli articoli non possono essere assegnati a categorie articolo principali!" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Nome articolo" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "È Template" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "Quest'articolo è un articolo di template?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "Questa parte è una variante di un altro articolo?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Categoria" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Categoria articolo" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "Numero Dell'articolo Interno" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "Numero di revisione o di versione" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "Dove viene normalmente immagazzinato questo articolo?" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Fornitore predefinito" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "Articolo fornitore predefinito" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "Scadenza Predefinita" -#: part/models.py:911 +#: part/models.py:975 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:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "Livello minimo di giacenza consentito" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "Unita di misura per questo articolo" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "Questo articolo può essere costruito da altri articoli?" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "Questo articolo può essere utilizzato per costruire altri articoli?" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "Questo articolo ha il tracciamento per gli elementi unici?" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "Quest'articolo può essere acquistato da fornitori esterni?" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "Questo pezzo può essere venduto ai clienti?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "Quest'articolo è attivo?" -#: part/models.py:966 +#: part/models.py:1034 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:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "Somma di controllo Distinta Base" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "Somma di controllo immagazzinata Distinta Base" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "Distinta Base controllata da" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "Data di verifica Distinta Base" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "Creazione Utente" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "Vendita multipla" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "Valuta utilizzata per calcolare i prezzi" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "Costo Minimo Distinta Base" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "Costo minimo dei componenti dell'articolo" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "Costo Massimo Distinta Base" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "Costo massimo dei componenti dell'articolo" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "Importo Acquisto Minimo" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "Costo minimo di acquisto storico" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "Importo massimo acquisto" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "Costo massimo di acquisto storico" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "Prezzo Interno Minimo" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "Costo minimo basato su interruzioni di prezzo interne" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "Prezzo Interno Massimo" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "Costo massimo basato su interruzioni di prezzo interne" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "Prezzo Minimo Fornitore" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "Prezzo minimo articolo da fornitori esterni" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "Prezzo Massimo Fornitore" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "Variazione di costo minimo" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "Costo minimo calcolato di variazione dell'articolo" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "Massima variazione di costo" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "Costo massimo calcolato di variazione dell'articolo" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "Costo minimo totale calcolato" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "Costo massimo totale calcolato" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "Prezzo Di Vendita Minimo" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "Prezzo Di Vendita Massimo" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "Prezzo storico minimo di vendita" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "Prezzo storico massimo di vendita" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "Articolo per l'inventario" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "Contatore Elemento" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "Numero di scorte individuali al momento dell'inventario" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "Totale delle scorte disponibili al momento dell'inventario" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "Totale delle scorte disponibili al momento dell'inventario" msgid "Date" msgstr "Data" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "Data in cui è stato effettuato l'inventario" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "Note aggiuntive" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "Utente che ha eseguito questo inventario" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "Costo Minimo Scorta" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "Costo minimo stimato di magazzino a disposizione" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "Costo Massimo Scorte" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "Costo massimo stimato di magazzino a disposizione" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "Report" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "File Report Inventario (generato internamente)" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "Conteggio Articolo" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "Numero di articoli oggetto d'inventario" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "Utente che ha richiesto questo report inventario" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "Il modello di prova può essere creato solo per gli articoli rintracciabili" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "Una prova con questo nome esiste già per questo articolo" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nome Test" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "Inserisci un nome per la prova" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "Inserisci descrizione per questa prova" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Richiesto" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "Questa prova è necessaria per passare?" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Valore richiesto" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "Questa prova richiede un valore quando si aggiunge un risultato di prova?" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Allegato Richiesto" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "Questa prova richiede un file allegato quando si aggiunge un risultato di prova?" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "Il nome del modello del parametro deve essere univoco" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "Nome Parametro" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "Descrizione del parametro" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "Articolo principale" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Modello Parametro" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "Dati" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "Valore del Parametro" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valore Predefinito" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "Valore Parametro Predefinito" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "ID articolo o nome articolo" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "Valore ID articolo univoco" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "Valore IPN articolo" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "Livello" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "Livello distinta base" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "Distinta base (Bom)" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "Seleziona articolo principale" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "Articolo subordinato" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "Seleziona l'articolo da utilizzare nella Distinta Base" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "Quantità Distinta Base per questo elemento Distinta Base" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "Questo elemento della Distinta Base è opzionale" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Questo elemento della Distinta Base è consumabile (non è tracciato negli ordini di produzione)" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Eccedenza" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "Riferimento Elemento Distinta Base" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "Note Elemento Distinta Base" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "Codice di controllo" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "Codice di controllo Distinta Base" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Convalidato" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Questo elemento della Distinta Base viene ereditato dalle Distinte Base per gli articoli varianti" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Gli elementi in giacenza per gli articoli varianti possono essere utilizzati per questo elemento Distinta Base" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "L'articolo subordinato deve essere specificato" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "Elemento Distinta Base Sostituito" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sostituita non può essere la stessa dell'articolo principale" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "Elemento principale Distinta Base" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "Sostituisci l'Articolo" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "Articolo 1" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "Articolo 2" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "Seleziona Prodotto Relativo" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "Non si può creare una relazione tra l'articolo e sé stesso" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "La relazione duplicata esiste già" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Valuta di acquisto di questo articolo in stock" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "Articolo Originale" @@ -6401,299 +6400,299 @@ msgstr "Seleziona l'articolo originale da duplicare" msgid "Copy Image" msgstr "Copia immagine" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "Copia immagine dall'articolo originale" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Copia Distinta Base" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "Copia fattura dei materiali dall'articolo originale" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Copia parametri" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "Copia i dati dei parametri dall'articolo originale" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "Quantità iniziale" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Specificare la quantità iniziale disponibile per questo Articolo. Se la quantità è zero, non viene aggiunta alcuna quantità." -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "Ubicazione Iniziale Magazzino" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "Seleziona il fornitore (o lascia vuoto per saltare)" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "Seleziona il produttore (o lascia vuoto per saltare)" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "Codice articolo Produttore" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "L'azienda selezionata non è un fornitore valido" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "L'azienda selezionata non è un produttore valido" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Duplica articolo" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "Copia i dati iniziali da un altro Articolo" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "Stock iniziale" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "Crea Articolo con quantità di scorta iniziale" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "Informazioni Fornitore" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "Copia Parametri Categoria" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "Copia i parametri dai modelli della categoria articolo selezionata" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Limitare il report d'inventario ad un articolo particolare e a eventuali articoli varianti" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Limita il report d'inventario ad una particolare categoria articolo, e a eventuali categorie secondarie" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Limita il report d'inventario ad una particolare ubicazione di magazzino, e a eventuali ubicazioni secondarie" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "Genera Report" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "Genera file di report contenente dati di inventario calcolati" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "Aggiorna Articoli" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "Aggiorna gli articoli specificati con i dati calcolati di inventario" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "La funzione Inventario non è abilitata" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "Aggiorna" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "Aggiorna i prezzi per questo articolo" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "Seleziona l'articolo da cui copiare la distinta base" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "Rimuovi Dati Esistenti" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "Rimuovi elementi distinta base esistenti prima di copiare" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "Includi Ereditato" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "Includi gli elementi Distinta Base ereditati da prodotti template" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "Salta Righe Non Valide" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "Abilita questa opzione per saltare le righe non valide" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "Copia Articoli sostitutivi" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "Cancella Distinta Base esistente" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "Rimuovi elementi distinta base esistenti prima del caricamento" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "Nessuna colonna articolo specificata" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "Trovati più articoli corrispondenti" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "Nessun articolo corrispondente trovato" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "L'articolo non è indicato come componente" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "Quantità non fornita" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Quantità non valida" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "Almeno un elemento della distinta base è richiesto" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "Quantità Totale" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "Costo Minimo Totale" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "Costo Massimo Totale" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "Report Inventario Disponibile" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "Un nuovo report di inventario è disponibile per il download" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "Notifica di magazzino bassa" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "Lo stock disponibile per {part.name} è sceso sotto il livello minimo configurato" @@ -6707,14 +6706,16 @@ msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 -#, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +#, fuzzy, python-format +#| msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "La distinta base per %(part)s è stato controllato da %(checker)s il %(check_date)s" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "La distinta base per %(part)s non è stata convalidata." +#, fuzzy +#| msgid "This line has been validated" +msgid "This BOM has not been validated." +msgstr "Questa linea è stata convalidata" #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -6825,9 +6826,9 @@ msgid "Add stocktake information" msgstr "Aggiungi informazioni inventario" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "Inventario" @@ -7235,7 +7236,7 @@ msgstr "" msgid "Edit" msgstr "Modifica" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7365,11 @@ msgstr "Crea nuove varianti dell'articolo" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Database sconosciuto" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,107 +7377,107 @@ msgstr "" msgid "Match References" msgstr "Riferimenti Corrispondenza" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "Seleziona l'immagine dell'Articolo" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "Immagine articolo aggiornata" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Immagine articolo non trovata" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "Prezzo Articolo" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Nessuna azione specificata" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Nessuna azione corrispondente trovata" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Nessuna corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Corrispondenza trovata per i dati del codice a barre" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Il codice a barre corrisponde a un elemento esistente" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "Scorte insufficienti disponibili" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7490,11 +7491,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7510,7 +7511,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7518,7 +7519,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7526,19 +7527,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7546,15 +7547,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "Stampa etichetta fallita" @@ -7567,8 +7568,8 @@ msgid "Provides native support for barcodes" msgstr "Fornisce supporto nativo per codici a barre" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7576,49 +7577,49 @@ msgstr "Fornisce supporto nativo per codici a barre" msgid "InvenTree contributors" msgstr "Contributi d'InvenTree" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree Notifiche" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "Attiva notifiche email" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "Consenti l'invio di email per le notifiche di eventi" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "Abilita notifiche per rallentamenti" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "Consenti l'invio di messaggi di rallentamenti canale per le notifiche degli eventi" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "Rallentamenti in entrata notifiche url" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "Questo URL è stato utilizzato per inviare messaggi a un canale rallentato" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "Apri collegamento" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7658,7 +7659,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7674,7 +7675,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7734,113 +7735,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "Configurazione Plugin" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "Configurazioni Plugin" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "Key" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "Key dei plugin" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "PluginName del plugin" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "Il plugin è attivo" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "Installato" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "Plugin di esempio" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "Plugin Integrato" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Plugin" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "Metodo" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "Nessun autore trovato" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "Abilita PO" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "Abilita funzionalità PO nell'interfaccia InvenTree" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "API Key" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "Key richiesta per accedere alle API esterne" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Numerico" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "Un'impostazione numerica" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "Scegli l'impostazione" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "Un'impostazione con scelte multiple" @@ -7852,35 +7853,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "URL di origine" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Fonte per il pacchetto - questo può essere un registro personalizzato o un percorso VCS" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "Nome Pacchetto" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Nome per il Pacchetto Plugin - può anche contenere un indicatore di versione" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "Conferma installazione plugin" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Questo plugin verrà installato ora nell'istanza corrente. L'istanza andrà in manutenzione." -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "Installazione non confermata" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "Deve essere fornito uno dei nomi del pacchetto URL" @@ -7892,40 +7893,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "Nessun oggetto valido fornito nel modello" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Il file del modello '{template}' è mancante o non esiste" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "Report test" @@ -7945,103 +7946,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Nome modello" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "File modello di report" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "Descrizione del modello report" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "Numero di revisione del rapporto (auto-incrementi)" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "Sequenza per generare i nomi dei file report" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "Modello report abilitato" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "Filtri di ricerca elementi di stock (elenco separato da virgole key=coppia di valori)" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "Includi Test Installati" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "Includi i risultati dei test per gli elementi stock installati all'interno dell'elemento assemblato" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "Filtri di produzione" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "Filtri di ricerca produzione (elenco separato da virgole key=coppia di valori" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "Filtri Articolo" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "Filtri di ricerca articolo (elenco separato da virgole key=coppia di valori" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "Ordine di Acquisto filtra la ricerca" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "Ordine di Vendita filtra la ricerca" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "Snippet" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "Report file snippet" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "Descrizione file snippet" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "Risorsa" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "Report file risorsa" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "File risorsa descrizione" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8082,7 +8083,7 @@ msgstr "Totale" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8108,12 +8109,12 @@ msgid "Test Results" msgstr "Risultati Test" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "Risultato" @@ -8139,7 +8140,7 @@ msgid "Installed Items" msgstr "Elementi installati" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Seriale" @@ -8148,438 +8149,438 @@ msgstr "Seriale" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "ID Posizione" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "Nome Ubicazione" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Percorso Ubicazione" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "ID Elemento Stock" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "Codici di stato" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "ID Articolo Fornitore" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "ID Fornitore" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "Nome Fornitore" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "ID Cliente" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Installato In" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "ID Costruttore" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "ID Ordine Vendita" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "ID Ordine D'acquisto" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "Revisione Necessaria" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "Elimina al esaurimento" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "Data di Scadenza" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "Ubicazione Esterna" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "Obsoleto" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "La quantità è richiesta" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "Deve essere fornita un articolo valido" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "I numeri di serie non possono essere forniti per un articolo non tracciabile" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Ubicazione magazzino" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Posizioni magazzino" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Proprietario" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Seleziona Owner" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Gli elementi di magazzino non possono essere direttamente situati in un magazzino strutturale, ma possono essere situati in ubicazioni secondarie." -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Esterno" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "Si tratta di una posizione esterna al magazzino" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Non puoi rendere strutturale questa posizione di magazzino perché alcuni elementi di magazzino sono già posizionati al suo interno!" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "Gli articoli di magazzino non possono essere ubicati in posizioni di magazzino strutturali!" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "Non è possibile creare un elemento di magazzino per articoli virtuali" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "La quantità deve essere 1 per elementi con un numero di serie" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Il numero di serie non può essere impostato se la quantità è maggiore di 1" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "L'elemento non può appartenere a se stesso" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "L'elemento deve avere un riferimento di costruzione se is_building=True" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "Il riferimento di costruzione non punta allo stesso oggetto dell'articolo" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Elemento di magazzino principale" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "Articolo base" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "Seleziona un fornitore articolo corrispondente per questo elemento di magazzino" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "Dove si trova questo articolo di magazzino?" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "Imballaggio di questo articolo di magazzino è collocato in" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "Questo elemento è stato installato su un altro elemento?" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "Numero di serie per questo elemento" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "Codice lotto per questo elemento di magazzino" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "Quantità disponibile" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "Genera Costruzione" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "Costruisci per questo elemento di magazzino" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "Origina Ordine di Acquisto" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "Ordine d'acquisto per questo articolo in magazzino" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "Destinazione Ordine di Vendita" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Data di scadenza per l'elemento di magazzino. Le scorte saranno considerate scadute dopo questa data" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "Elimina al esaurimento" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "Cancella questo Elemento di Magazzino quando la giacenza è esaurita" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "Prezzo di acquisto unitario al momento dell’acquisto" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "Convertito in articolo" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "L'articolo non è impostato come tracciabile" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "La quantità deve essere un numero intero" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "I numeri di serie devono essere numeri interi" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "La quantità non corrisponde ai numeri di serie" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Numeri di serie già esistenti" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "L'elemento di magazzino è stato assegnato a un ordine di vendita" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "L'elemento di magazzino è installato in un altro elemento" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "L'elemento di magazzino contiene altri elementi" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "L'elemento di magazzino è stato assegnato a un cliente" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "L'elemento di magazzino è attualmente in produzione" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "Il magazzino serializzato non può essere unito" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "Duplica elementi di magazzino" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitore" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "I codici di stato dello stock devono corrispondere" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "Le giacenze non possono essere spostate perché non disponibili" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "Note d'ingresso" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "Il valore deve essere fornito per questo test" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "L'allegato deve essere caricato per questo test" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "Nome Test" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "Risultato Test" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "Test valore output" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "Risultato della prova allegato" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "Note del test" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "Il numero di serie è troppo grande" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "Inserisci il numero di elementi di magazzino da serializzare" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "La quantità non deve superare la quantità disponibile ({q})" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "Inserisci i numeri di serie per i nuovi elementi" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "Posizione magazzino di destinazione" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "Note opzionali elemento" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "Numeri di serie non possono essere assegnati a questo articolo" @@ -8595,116 +8596,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "Aggiungi nota di transazione (opzionale)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "Elemento di magazzino non disponibile" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "L'articolo selezionato non è nella Fattura dei Materiali" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "Posizione di destinazione per gli elementi disinstallati" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "Seleziona l'articolo in cui convertire l'elemento di magazzino" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "L'articolo selezionato non è una valida opzione per la conversione" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "Posizione di destinazione per l'elemento restituito" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "L'articolo deve essere vendibile" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "L'elemento è assegnato a un ordine di vendita" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "Elemento assegnato a un ordine di costruzione" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "Cliente a cui assegnare elementi di magazzino" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "L'azienda selezionata non è un cliente" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "Note sull'assegnazione delle scorte" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "Deve essere fornito un elenco degli elementi di magazzino" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "Note di fusione di magazzino" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "Consenti fornitori non corrispondenti" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "Consenti di unire gli elementi di magazzino che hanno fornitori diversi" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "Consenti stato non corrispondente" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "Consenti di unire gli elementi di magazzino con diversi codici di stato" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "Devono essere riforniti almeno due elementi in magazzino" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "Valore di chiave primaria StockItem" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "Note sugli spostamenti di magazzino" @@ -8925,7 +8926,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Questo Elemento Stock è scaduto il %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "Scaduto" @@ -9562,7 +9563,7 @@ msgstr "Voto" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Elimina" @@ -12731,7 +12732,7 @@ msgstr "Prendi" msgid "Add Stock" msgstr "Aggiungi giacenza" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "Aggiungi" @@ -13370,7 +13371,7 @@ msgstr "Mostra Notifiche" msgid "New Notifications" msgstr "Nuove Notifiche" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "Amministratore" @@ -13543,31 +13544,31 @@ msgstr "Si" msgid "No" msgstr "No" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Utenti" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Selezionare quali utenti sono assegnati a questo gruppo" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Informazioni personali" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Permessi" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "Date Importanti" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13583,15 +13584,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13603,38 +13604,42 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Impostazione autorizzazioni" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Gruppo" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Visualizza" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Autorizzazione a visualizzare gli articoli" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Autorizzazione ad aggiungere elementi" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Modificare" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Permessi per modificare gli elementi" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Autorizzazione ad eliminare gli elementi" + +#, python-format +#~ msgid "The BOM for %(part)s has not been validated." +#~ msgstr "La distinta base per %(part)s non è stata convalidata." diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index e9e9e1c5c4..f642237866 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Japanese\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "APIエンドポイントが見つかりません" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "ユーザーにこのモデルを表示する権限がありません" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "値がありません" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "エラーの詳細は管理者パネルで確認できます" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "日付を入力する" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "日付を入力する" msgid "Notes" msgstr "メモ" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "値 '{name}' はパターン形式で表示されません" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "指定された値が必要なパターンと一致しません: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "パスワードを入力してください" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "新しいパスワードを入力してください。" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "パスワードの確認" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "新しいパスワードの確認" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "古いパスワード" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "メールアドレス(確認用)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "メールアドレスの確認" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "毎回同じメールアドレスを入力する必要があります。" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "指定されたプライマリEメールアドレスは無効です。" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "指定されたメールドメインは承認されていません。" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "数量コードが無効です" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "シリアル番号は空です" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "シリアル番号が見つかりません" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "この値からHTMLタグを削除" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "接続エラー" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "サーバは無効なステータスコードで応答しました" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "例外が発生しました" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "サーバーが無効なContent-Length値で応答しました" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "画像サイズが大きすぎます" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "画像のダウンロードが最大サイズを超えました" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "リモートサーバーが空のレスポンスを返しました" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "指定されたURLは有効な画像ファイルではありません" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "メールアドレス" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "プラグインメタデータ" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "外部プラグインで使用するためのJSONメタデータフィールド" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "ファイルがありません" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "外部リンクが見つかりません。" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "添付ファイル" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "添付ファイルを選択" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "添付ファイルを選択" msgid "Link" msgstr "リンク" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "外部 サイト へのリンク" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "コメント:" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "ファイルコメント" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "ユーザー" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "アップロード日時" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "ファイル名は空欄にできません" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "添付ファイルのディレクトリが正しくありません" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "ファイル名に無効な文字'{c}'が含まれています" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "ファイル名に拡張子がありません" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "この名前の貼付ファイルは既に存在します" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "ファイル名の変更に失敗しました" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "無効な選択です" msgid "Name" msgstr "お名前" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "お名前" msgid "Description" msgstr "説明" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "説明 (オプション)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "親" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "マークダウンメモ (オプション)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "バーコード情報" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "サードパーティ製バーコードデータ" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "ファイル名" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "無効な値です。" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "データファイル" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "アップロードするファイルを選択" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "サポートされていないファイル形式" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "ファイルサイズが大きすぎます" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "ファイルに列が見つかりません" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "ファイルにデータ行がみつかりません" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "データが入力されていません" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "データ列が指定されていません" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "必須の列がありません: {name}" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "{col} 列が重複しています。" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "外部画像ファイルのURL" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "外部URLからの画像ダウンロードは許可されていません" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "チェコ語" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "ドイツ語" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "ギリシャ語" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "英語" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "スペイン語" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "スペイン語(メキシコ)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "フランス語" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "ヘブライ語" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "ヒンディー語" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "ハンガリー語" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "イタリア語" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "日本語" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "韓国語" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "オランダ語" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "ノルウェー語" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "ポルトガル語" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "ポルトガル語 (ブラジル)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "ロシア語" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "スロベニア語" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "スウェーデン語" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "タイ語" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "ベトナム語" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "バックグラウンドワーカーのチェックに失敗しました" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "メールアドレスが未設定です" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InvenTree システムのヘルスチェックに失敗しました" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "処理待ち" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "設置済" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "完了" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "キャンセル済" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "紛失" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "返品済" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "処理中" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "発送済み" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "注意が必要です" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "破損" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "破壊されました" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "却下済み" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -854,23 +853,23 @@ msgstr "顧客からの返品" msgid "Production" msgstr "生産" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -894,27 +893,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "ユーザー情報を編集" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "パスワードを設定" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "パスワードが一致しません" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "パスワードが間違っています" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "システム情報" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "InvenTree について" @@ -922,14 +921,14 @@ msgstr "InvenTree について" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "オプション" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "組立注文" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "組立注文" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "組立状況" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1140,7 +1139,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "組立優先度" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1338,9 +1337,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "シリアル番号" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "ファイル" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "外部URLからの画像ダウンロードを許可する" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "外部URL画像の最大サイズ" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "テンプレート" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "アセンブリ" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "コンポーネント" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "購入可能" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "販売可能" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "追跡可能" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "デバッグモード" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "シリアル番号を自動入力" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "メールアドレスは必須です" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "非アクティブな部品を非表示" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "購読中の部品を表示" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "購読中のカテゴリを表示" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "メッセージ ID:" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "連絡先メールアドレス" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "製造元" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "メーカー・パーツ" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "仕入先" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "顧客" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "仕入先" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "在庫商品" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "外部ページへのリンク" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "購入金額" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "割り当てるシリアル番号を入力" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "キーワード" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "カテゴリID" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "カテゴリ名" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "パーツ" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "パーツカテゴリ" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "パーツカテゴリ" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "カテゴリ" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "パーツカテゴリ" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "カテゴリを選択" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,115 +7374,115 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "アクションが指定されていません" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "一致するアクションが見つかりませんでした" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "No matching action found" msgid "Multiple matching line items found" msgstr "一致するアクションが見つかりませんでした" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching action found" msgid "No matching line item found" msgstr "一致するアクションが見つかりませんでした" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock item created" msgid "Stock item allocated to sales order" msgstr "在庫商品を作成しました" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "Edit User Information" msgid "Not enough information" msgstr "ユーザー情報を編集" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7498,11 +7496,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7518,7 +7516,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7526,7 +7524,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7534,19 +7532,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7554,15 +7552,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7575,8 +7573,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7584,49 +7582,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7666,7 +7664,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7682,7 +7680,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7742,113 +7740,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7860,35 +7858,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7900,40 +7898,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7953,103 +7951,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8090,7 +8088,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8116,12 +8114,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8147,7 +8145,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8156,438 +8154,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "シリアル番号が既に存在します" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "シリアル番号が大きすぎます" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8603,116 +8601,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "パーツは販売可能でなければなりません" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8933,7 +8931,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "期限切れ" @@ -9570,7 +9568,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12739,7 +12737,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13378,7 +13376,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13549,31 +13547,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "個人情報" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "許可" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "重要な日付" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13589,15 +13587,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13609,38 +13607,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "パーミッション設定" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "グループ" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "表示" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "項目を表示する権限" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "項目を追加する権限" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "変更" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "項目を編集する権限" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "項目を削除する権限" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index b368465b3f..751cc1a4fc 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Korean\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API endpoint 없음" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "이 모델을 볼 수 있는 권한이 없습니다." -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "{original} 을 {unit} 으로 전환할 수 없음." -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "오류 세부 정보는 관리자 패널에서 찾을 수 있습니다." -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "날짜 입력" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "날짜 입력" msgid "Notes" msgstr "메모" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "비밀번호를 입력하세요" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "새로운 비밀번호를 입력하세요" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "비밀번호 확인" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "새 비밀번호 확인" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "이전 암호" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "이메일 (다시 입력)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "이메일 주소 확인" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "연결 오류" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "사진 크기 초과" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "사진 다운로드 수가 최대치를 초과함." -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "이메일" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "존재하지 않는 파일" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "존재하지 않는 외부 링크" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "첨부파일" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "첨부할 파일을 선택하세요" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "첨부할 파일을 선택하세요" msgid "Link" msgstr "링크" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "외부 URL로 링크" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "사용자" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "업로드 날짜" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "파일명은 비워둘 수 없습니다" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "파일명에 허용되지 않은 문자 '{c}'가 포함되어 있습니다" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "같은 이름의 첨부파일이 이미 존재합니다" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "파일 이름 바꾸기 오류" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "" msgid "Name" msgstr "이름" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "이름" msgid "Description" msgstr "설명" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "설명 (선택 사항)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "마크다운 노트 (선택사항)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "바코드 데이터" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "제3 자 바코드 데이터" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "바코드 해시" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "유효한 숫자여야 합니다" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "파일명" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "지원하지 않는 파일 형식" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "파일이 너무 큽니다" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "파일에서 발견된 세로열 없음." -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "파일에서 발견된 가로열 없음" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "데이터 가로열이 제공되지 않음" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "데이터 세로열이 제공되지 않음" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "사라진 필수 세로열: {name}" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "원격 이미지 파일의 URL" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "원격 URL 에서 이미지 다운로드가 활성화되지 않음" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "체코어" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "덴마크어" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "독일어" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "그리스어" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "영어" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "스페인어" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "스페인어 (멕시코)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "파르시어/페르시아어" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "핀란드어" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "프랑스어" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "히브리어" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "힌디어" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "헝가리어" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "이탈리아어" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "일본어" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "한국어" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "네덜란드어" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "노르웨이어" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "폴란드어" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "포르투갈어" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "포르투갈어 (브라질)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "러시아어" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "슬로베니아어" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "스웨덴어" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "태국어" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "터키어" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "베트남어" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "중국어 (간체)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "중국어 (번체)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Background worker 확인 실패" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "이메일 백엔드가 구성되지 않음" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "보류" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "완료" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "취소됨" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "실패" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "진행 중" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "확인" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "주의 요망" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "파손됨" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "파괴됨" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "거부됨" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "격리된 파일" @@ -854,23 +853,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -894,27 +893,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "사용자 정보 수정" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "비밀번호 설정" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "비밀번호가 일치해야 합니다" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "시스템 정보" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -922,14 +921,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1140,7 +1139,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "수량 값은 0보다 커야 합니다" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1338,9 +1337,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "일련번호" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "파일" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "업로드할 파일을 선택하세요" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} 파일" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "업로드할 {name} 파일을 선택하세요" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "재시작 필요" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "회사명" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "기본 통화" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "URL에서 다운로드" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "바코드 지원" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "구입 가능" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "판매 가능" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "디버그 모드" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "페이지 크기" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "PDF 보고서 기본 페이지 크기" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "SSO 활성화" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "로그인 페이지에서 SSO 활성화" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "이메일 필요" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "두 번 보내기" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "작성자" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "이미지" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "파일 업로드" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "파일 업로드" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "회사 소개" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "웹사이트" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "회사 웹사이트 URL" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "전화번호" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "회사" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "URL에서 이미지 다운로드" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "고객" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "새 회사" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "높이 [mm]" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "바코드" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "이미 사용 중인 바코드입니다" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "데이터" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "이미지 복사" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,113 +7374,113 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching serial number" msgid "No matching line item found" msgstr "일치하는 일련번호가 없습니다" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock item created" msgid "Stock item allocated to sales order" msgstr "재고 항목 생성됨" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "copy version information" msgid "Not enough information" msgstr "버전 정보 복사" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7496,11 +7494,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7516,7 +7514,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7524,7 +7522,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7532,19 +7530,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7552,15 +7550,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7573,8 +7571,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7582,49 +7580,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7664,7 +7662,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7680,7 +7678,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7740,113 +7738,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "키" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "API 키" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7858,35 +7856,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7898,40 +7896,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7951,103 +7949,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8088,7 +8086,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8114,12 +8112,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8145,7 +8143,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8154,438 +8152,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "일련번호가 이미 존재합니다" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8601,116 +8599,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8931,7 +8929,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9568,7 +9566,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "삭제" @@ -12737,7 +12735,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13376,7 +13374,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "관리자" @@ -13547,31 +13545,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13587,15 +13585,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13607,38 +13605,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index eb9c2a0302..287480e8de 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-21 05:01+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2024-01-02 15:19\n" "Last-Translator: \n" "Language-Team: Dutch\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API eindpunt niet gevonden" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Gebruiker heeft geen rechten om dit model te bekijken" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Geen waarde opgegeven" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "{original} kon niet worden omgezet naar {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Ongeldige hoeveelheid ingegeven" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Ongeldige hoeveelheid ingegeven ({exc})" @@ -47,22 +47,22 @@ msgstr "Ongeldige hoeveelheid ingegeven ({exc})" msgid "Error details can be found in the admin panel" msgstr "Error details kunnen worden gevonden in het admin scherm" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Voer datum in" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Voer datum in" msgid "Notes" msgstr "Opmerkingen" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Waarde '{name}' verschijnt niet in patroonformaat" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Opgegeven waarde komt niet overeen met vereist patroon: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Voer wachtwoord in" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Voer een nieuw wachtwoord in" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Wachtwoord bevestigen" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Nieuw wachtwoord bevestigen" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Oude wachtwoord" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "E-mailadres (opnieuw)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "E-mailadres bevestiging" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Er moet hetzelfde e-mailadres ingevoerd worden." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Het opgegeven primaire e-mailadres is ongeldig." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Het ingevoerde e-maildomein is niet goedgekeurd." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Registratie is uitgeschakeld." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveelheid ingevoerd" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Leeg serienummer" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Duplicaat serienummer" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Geen serienummers gevonden" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Verwijder HTML tags van deze waarde" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Verbindingsfout" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Server reageerde met ongeldige statuscode" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Uitzondering opgetreden" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Server reageerde met ongeldige Content-Length waarde" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Afbeeldingsformaat is te groot" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Beelddownload overschrijdt de maximale grootte" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Externe server heeft lege reactie teruggegeven" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Opgegeven URL is geen geldig afbeeldingsbestand" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Log in bij de app" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Email" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Metadata moeten een python dict object zijn" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Plugin Metadata" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "JSON metadata veld, voor gebruik door externe plugins" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Onjuist opgemaakt patroon" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Onbekende opmaaksleutel gespecificeerd" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Vereiste opmaaksleutel ontbreekt" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Referentieveld mag niet leeg zijn" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Referentie moet overeenkomen met verplicht patroon" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Referentienummer is te groot" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Ontbrekend bestand" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Externe link ontbreekt" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Bijlage" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Bestand als bijlage selecteren" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Link naar externe URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Opmerking" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Bestand opmerking" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Gebruiker" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "uploaddatum" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Bestandsnaam mag niet leeg zijn" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Foute bijlagemap" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Bestandsnaam bevat illegale teken '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Bestandsnaam mist extensie" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Bijlage met deze bestandsnaam bestaat al" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Fout bij hernoemen bestand" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Ongeldige keuze" msgid "Name" msgstr "Naam" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Naam" msgid "Description" msgstr "Omschrijving" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Omschrijving (optioneel)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "bovenliggende" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Pad" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Markdown notitie (optioneel)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Streepjescode gegevens" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Streepjescode van derden" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Hash van Streepjescode" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Unieke hash van barcode gegevens" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Bestaande barcode gevonden" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Serverfout" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Selecteer valuta uit beschikbare opties" @@ -463,284 +462,286 @@ msgstr "Selecteer valuta uit beschikbare opties" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format -msgid "Your account has been created.\n\n" +msgid "" +"Your account has been created.\n" +"\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Bestandsnaam" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Ongeldige waarde" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Data bestand" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Selecteer een bestand om te uploaden" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Niet ondersteund bestandstype" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Bestand is te groot" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Geen kolommen gevonden in het bestand" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Geen data rijen gevonden in dit bestand" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Geen data rijen opgegeven" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Geen gegevenskolommen opgegeven" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Verplichte kolom ontbreekt: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dubbele kolom: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL van extern afbeeldingsbestand" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "Bulgaars" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Tsjechisch" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Deens" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Duits" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Grieks" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Engels" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Spaans" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Spaans (Mexicaans)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Perzisch" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Fins" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Frans" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Hindi" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Hongaars" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italiaans" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japans" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Koreaans" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Noors" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Pools" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugees" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugees (Braziliaans)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Sloveens" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "Servisch" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Thais" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turks" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Chinees (vereenvoudigd)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Chinees (traditioneel)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Achtergrondwerker check is gefaald" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "E-mailbackend niet geconfigureerd" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InvenTree gezondsheidschecks mislukt" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Bezig" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Geplaatst" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Voltooid" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Geannuleerd" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Kwijt" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Retour" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "In Behandeling" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Verzonden" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Aandacht nodig" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Beschadigd" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Verwoest" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Afgewezen" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "In quarantaine geplaatst" @@ -852,23 +853,23 @@ msgstr "Geretourneerd door klant" msgid "Production" msgstr "Productie" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Retour" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Herstel" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Vervangen" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Restitutie" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Afwijzen" @@ -880,11 +881,11 @@ msgstr "Ongeldige fysieke eenheid" msgid "Not a valid currency code" msgstr "Geen geldige valutacode" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Overschotwaarde mag niet negatief zijn" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Overschot mag niet groter zijn dan 100%" @@ -892,27 +893,27 @@ msgstr "Overschot mag niet groter zijn dan 100%" msgid "Invalid value for overage" msgstr "Ongeldige waarde voor overschot" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Gebruikersgegevens bewerken" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Wachtwoord instellen" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Wachtwoordvelden komen niet overeen" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Onjuist wachtwoord opgegeven" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Systeeminformatie" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Over InvenTree" @@ -920,14 +921,14 @@ msgstr "Over InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Verbruiksartikelen" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -941,14 +942,14 @@ msgstr "Optioneel" msgid "Tracked" msgstr "Gevolgd" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Toegewezen" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -978,7 +979,7 @@ msgstr "Productieorder" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Productieorders" @@ -994,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Productieorderreferentie" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1024,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Productieorder waar deze productie aan is toegewezen" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1041,7 +1042,7 @@ msgstr "Productieorder waar deze productie aan is toegewezen" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1128,8 +1129,8 @@ msgstr "Productiestatus" msgid "Build status code" msgstr "Productiestatuscode" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Batchcode" @@ -1138,7 +1139,7 @@ msgstr "Batchcode" msgid "Batch code for this build output" msgstr "Batchcode voor deze productieuitvoer" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1153,7 +1154,7 @@ msgstr "Verwachte opleveringsdatum" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Doeldatum voor productie voltooiing. Productie zal achterstallig zijn na deze datum." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Opleveringsdatum" @@ -1171,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Gebruiker die de productieorder heeft gegeven" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1195,7 +1196,7 @@ msgstr "Gebruiker of groep verantwoordelijk voor deze bouwopdracht" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1209,8 +1210,8 @@ msgstr "Bouw prioriteit" msgid "Priority of this build order" msgstr "Prioriteit van deze bouwopdracht" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1246,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "Productuitvoer komt niet overeen met de Productieorder" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" @@ -1262,10 +1263,10 @@ msgstr "Bouw object" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1275,7 +1276,7 @@ msgstr "Bouw object" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1320,11 +1321,11 @@ msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofd msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Voorraad item is te veel toegewezen" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Toewijzing hoeveelheid moet groter zijn dan nul" @@ -1336,9 +1337,9 @@ msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad" msgid "Selected stock item does not match BOM line" msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1402,8 +1403,8 @@ msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen" 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:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Serienummers" @@ -1420,7 +1421,7 @@ msgstr "Serienummers automatisch toewijzen" msgid "Automatically allocate required items with matching serial numbers" msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "De volgende serienummers bestaan al of zijn ongeldig" @@ -1428,10 +1429,10 @@ msgstr "De volgende serienummers bestaan al of zijn ongeldig" msgid "A list of build outputs must be provided" msgstr "Een lijst van productieuitvoeren moet worden verstrekt" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1469,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "Locatie van voltooide productieuitvoeren" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1543,7 +1544,7 @@ msgstr "Accepteer dat voorraadartikelen niet volledig zijn toegewezen aan deze p msgid "Required stock has not been fully allocated" msgstr "Vereiste voorraad is niet volledig toegewezen" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Accepteer Onvolledig" @@ -1579,11 +1580,11 @@ msgstr "Bouw lijn-item" 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:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "Artikel moet op voorraad zijn" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Beschikbare hoeveelheid ({q}) overschreden" @@ -1596,7 +1597,7 @@ msgstr "Productieuitvoer moet worden opgegeven voor de toewijzing van gevolgde o 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:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Allocaties voor artikelen moeten worden opgegeven" @@ -1761,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Voorraad is niet volledig toegewezen aan deze productieorder" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1799,8 +1800,8 @@ msgid "Completed Outputs" msgstr "Voltooide Uitvoeren" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1850,7 +1851,7 @@ msgstr "Voorraadbron" msgid "Stock can be taken from any available location." msgstr "Voorraad kan worden genomen van elke beschikbare locatie." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Bestemming" @@ -1863,7 +1864,7 @@ msgstr "Bestemmingslocatie niet opgegeven" msgid "Allocated Parts" msgstr "Toegewezen Onderdelen" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2019,19 +2020,19 @@ msgstr "Fout bij lezen bestand (onjuiste afmeting)" msgid "Error reading file (data could be corrupted)" msgstr "Fout bij lezen bestand (gegevens kunnen beschadigd zijn)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Bestand" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Selecteer bestand om te uploaden" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} Bestand" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "Kies {name} bestand om te uploaden" @@ -2044,1041 +2045,1041 @@ msgstr "Bijgewerkt" msgid "Timestamp of last update" msgstr "Tijdstempel van laatste update" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Unieke projectcode" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Projectbeschrijving" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "Instellingswaarde" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "Gekozen waarde is geen geldige optie" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "Waarde moet een booleaanse waarde zijn" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "Waarde moet een geheel getal zijn" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "Sleutelreeks moet uniek zijn" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Geen groep" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Een leeg domein is niet toegestaan." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ongeldige domeinnaam: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "Geen plug-in gevonden" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Opnieuw opstarten vereist" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "Een instelling is gewijzigd waarvoor een herstart van de server vereist is" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "Migraties in behandeling" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "ID Serverinstantie" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "Stringbeschrijving voor de server instantie" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Gebruik de instantie naam" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "Gebruik de naam van de instantie in de titelbalk" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "Tonen `over` beperken" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "Toon de `over` modal alleen aan superusers" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Bedrijfsnaam" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Interne bedrijfsnaam" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "Basis URL voor serverinstantie" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Standaard Valuta" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "Selecteer basisvaluta voor de berekening van prijzen" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "dagen" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Download van URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Download limiet" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Maximale downloadgrootte voor externe afbeelding" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "User-agent gebruikt om te downloaden van URL" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Sta toe om de user-agent te overschrijven die gebruikt wordt om afbeeldingen en bestanden van externe URL te downloaden (laat leeg voor de standaard)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Bevestiging vereist" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Vereis expliciete bevestiging van de gebruiker voor bepaalde actie." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Boomstructuur Diepte" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standaard diepte voor treeview. Diepere niveaus kunnen geladen worden wanneer ze nodig zijn." -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Interval voor update" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "Hoe vaak te controleren op updates (nul om uit te schakelen)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Automatische backup" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Automatische back-up van database- en mediabestanden inschakelen" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Automatische backup interval" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Geef het aantal dagen op tussen geautomatiseerde backup" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "Interval Taak Verwijderen" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "Error Log Verwijderings Interval" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "Resultaten van achtergrondtaken worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "Interval Verwijderen Notificatie" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Meldingen van gebruikers worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Streepjescodeondersteuning" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Barcode Invoer Vertraging" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Barcode invoerverwerking vertraging" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Barcode Webcam Ondersteuning" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "Barcode via webcam scannen in browser toestaan" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "Herzieningen onderdeel" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "Revisieveld voor onderdeel inschakelen" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulier expressiepatroon voor het overeenkomende Onderdeel IPN" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Duplicaat IPN toestaan" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Bewerken IPN toestaan" -#: common/models.py:1310 +#: common/models.py:1358 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:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Kopieer Onderdeel Stuklijstgegevens" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopieer standaard stuklijstgegevens bij het dupliceren van een onderdeel" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "Kopieer Onderdeel Parametergegevens" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "Parametergegevens standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "Kopieer Onderdeel Testdata" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "Testdata standaard kopiëren bij het dupliceren van een onderdeel" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Kopiëer Categorieparameter Sjablonen" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "Kopieer categorieparameter sjablonen bij het aanmaken van een onderdeel" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Sjabloon" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Onderdelen zijn standaard sjablonen" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Samenstelling" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Component" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "Onderdelen kunnen standaard worden gebruikt als subcomponenten" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Koopbaar" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Onderdelen kunnen standaard gekocht worden" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Verkoopbaar" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Onderdelen kunnen standaard verkocht worden" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Volgbaar" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Onderdelen kunnen standaard gevolgd worden" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Virtueel" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Onderdelen zijn standaard virtueel" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Toon Import in Weergaven" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "Toon de importwizard in sommige onderdelenweergaven" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Verwante onderdelen tonen" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Verwante onderdelen voor een onderdeel tonen" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Initiële voorraadgegevens" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Aanmaken van eerste voorraad toestaan bij het toevoegen van een nieuw onderdeel" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Initiële leveranciergegevens" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Aanmaken van eerste leveranciersgegevens toestaan bij het toevoegen van een nieuw onderdeel" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Onderdelennaam Weergaveopmaak" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Opmaak om de onderdeelnaam weer te geven" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Standaardicoon voor onderdeel catagorie" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Standaardicoon voor onderdeel catagorie (leeg betekent geen pictogram)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "Forceer Parameter Eenheden" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "Als er eenheden worden opgegeven, moeten parameterwaarden overeenkomen met de opgegeven eenheden" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "Minimaal aantal prijs decimalen" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimaal aantal decimalen om weer te geven bij het weergeven van prijsgegevens" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "Maximum prijs decimalen" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maximum aantal decimalen om weer te geven bij het weergeven van prijsgegevens" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Gebruik leveranciersprijzen" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Prijsvoordelen leveranciers opnemen in de totale prijsberekening" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Aankoopgeschiedenis overschrijven" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historische order prijzen overschrijven de prijzen van de leverancier" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "Gebruik voorraaditem prijzen" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Gebruik prijzen van handmatig ingevoerde voorraadgegevens voor prijsberekeningen" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "Voorraad artikelprijs leeftijd" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Voorraaditems ouder dan dit aantal dagen uitsluiten van prijsberekeningen" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "Gebruik variantprijzen" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "Variantenprijzen opnemen in de totale prijsberekening" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "Alleen actieve varianten" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "Gebruik alleen actieve variantonderdelen voor het berekenen van variantprijzen" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "Prijzen Herbouw interval" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "Aantal dagen voordat de prijzen voor onderdelen automatisch worden bijgewerkt" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Interne Prijzen" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "Inschakelen van interne prijzen voor onderdelen" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Interne prijs overschrijven" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "Indien beschikbaar, interne prijzen overschrijven berekeningen van prijsbereik" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Printen van labels Inschakelen" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Printen van labels via de webinterface inschakelen" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "Label Afbeelding DPI" -#: common/models.py:1543 +#: common/models.py:1569 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:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Activeer Rapportages" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Activeer het genereren van rapporten" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Foutopsporingsmodus" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Rapporten genereren in debug modus (HTML uitvoer)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Paginagrootte" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Standaard paginagrootte voor PDF rapporten" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Activeer Testrapporten" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Activeer het genereren van testrapporten" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Testrapporten Toevoegen" -#: common/models.py:1581 +#: common/models.py:1601 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:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "Globaal unieke serienummers" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "Serienummers voor voorraaditems moeten globaal uniek zijn" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Serienummers automatisch invullen" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Automatisch invullen van serienummer in formulieren" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Verwijder uitgeputte voorraad" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Bepaalt standaard gedrag wanneer een voorraaditem is uitgeput" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "Batchcode Sjabloon" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "Sjabloon voor het genereren van standaard batchcodes voor voorraadartikelen" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "Verlopen Voorraad" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "Verlopen voorraad functionaliteit inschakelen" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "Verkoop Verlopen Voorraad" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "Verkoop verlopen voorraad toestaan" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "Voorraad Vervaltijd" -#: common/models.py:1629 +#: common/models.py:1648 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:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "Produceer Verlopen Voorraad" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "Sta productie met verlopen voorraad toe" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "Voorraad Eigenaar Toezicht" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "Eigenaarstoezicht over voorraadlocaties en items inschakelen" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "Voorraadlocatie standaard icoon" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "Standaard locatie pictogram (leeg betekent geen icoon)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "Geïnstalleerde voorraad items weergeven" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "Geïnstalleerde voorraadartikelen in voorraadtabellen tonen" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "Productieorderreferentiepatroon" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "Retourorders inschakelen" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "Retourorder functionaliteit inschakelen in de gebruikersinterface" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "Retourorder referentie patroon" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "Verplicht patroon voor het genereren van Retour Order referentie veld" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "Bewerk voltooide retourorders" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "Bewerken van retourorders toestaan nadat deze zijn voltooid" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "Verkooporderreferentiepatroon" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "Standaard Verzending Verkooporder" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "Aanmaken standaard verzending bij verkooporders inschakelen" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "Bewerk voltooide verkooporders" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Bewerken van verkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "Inkooporderreferentiepatroon" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "Bewerk voltooide verkooporders" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Bewerken van inkooporders toestaan nadat deze zijn verzonden of voltooid" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Wachtwoord vergeten functie inschakelen" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Registratie inschakelen" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "SSO inschakelen" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "SSO inschakelen op de inlogpagina's" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "Schakel gebruikersregistratie met SSO in" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Zelfregistratie voor gebruikers middels SSO op de inlogpagina's inschakelen" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "E-mailadres verplicht" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "SSO-gebruikers automatisch invullen" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "Gebruikersdetails van SSO-accountgegevens automatisch invullen" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "E-mail twee keer" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "Bij inschrijving gebruikers twee keer om hun e-mail vragen" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Wachtwoord tweemaal" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Toegestane domeinen" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Inschrijven beperken tot bepaalde domeinen (komma-gescheiden, beginnend met @)" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Groep bij aanmelding" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "Groep waaraan nieuwe gebruikers worden toegewezen bij registratie" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "MFA afdwingen" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Gebruikers moeten multifactor-beveiliging gebruiken." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Controleer plugins bij het opstarten" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Controleer of alle plug-ins zijn geïnstalleerd bij het opstarten - inschakelen in container-omgevingen" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "Activeer URL-integratie" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "Plugins toestaan om URL-routes toe te voegen" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "Activeer navigatie integratie" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "Plugins toestaan om te integreren in navigatie" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "Activeer app integratie" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "Activeer plug-ins om apps toe te voegen" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "Activeer planning integratie" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "Activeer plugin om periodiek taken uit te voeren" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "Activeer evenement integratie" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "Activeer plugin om op interne evenementen te reageren" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "Activeer project codes" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "Activeer project codes voor het bijhouden van projecten" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "Voorraadcontrole functionaliteit" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Schakel voorraadfunctionaliteit in voor het opnemen van voorraadniveaus en het berekenen van voorraadwaarde" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "Externe locaties uitsluiten" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "Automatische Voorraadcontrole Periode" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Aantal dagen tussen automatische voorraadopname (ingesteld op nul om uit te schakelen)" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "Rapport Verwijdering Interval" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Voorraadrapportage zal worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Verberg inactieve delen bij items op de homepage" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Toon geabonneerde onderdelen" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Toon geabonneerde onderdelen op de homepage" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Toon geabonneerde categorieën" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Toon geabonneerde onderdeel categorieën op de startpagina" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Toon laatste onderdelen" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Toon laatste onderdelen op de startpagina" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Toon niet-gevalideerde BOM's" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "Laat BOMs zien die wachten op validatie op de startpagina" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Toon recente voorraadwijzigingen" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "Toon recent aangepaste voorraadartikelen op de startpagina" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Toon lage voorraad" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Toon lage voorraad van artikelen op de startpagina" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Toon lege voorraad" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Toon lege voorraad van artikelen op de startpagina" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Toon benodigde voorraad" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Toon verlopen voorraad" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Toon verlopen voorraad van artikelen op de startpagina" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Toon verouderde voorraad" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Toon verouderde voorraad van artikelen op de startpagina" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Toon openstaande producties" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Toon openstaande producties op de startpagina" @@ -3090,450 +3091,450 @@ msgstr "Toon achterstallige productie" msgid "Show overdue builds on the homepage" msgstr "Toon achterstallige producties op de startpagina" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "Toon uitstaande PO's" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "Toon uitstaande PO's op de startpagina" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "Toon achterstallige PO's" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "Toon achterstallige PO's op de startpagina" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "Toon uitstaande SO's" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "Toon uitstaande SO's op de startpagina" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "Toon achterstallige SO's" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "Toon achterstallige SO's op de startpagina" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "Toon in behandeling SO verzendingen" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "Toon in behandeling zijnde SO verzendingen op de startpagina" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Nieuws tonen" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Nieuws op de startpagina weergeven" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "Inline labelweergave" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-labels in browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "Standaard label printer" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "Instellen welke label printer standaard moet worden geselecteerd" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "Inline rapport weergeven" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-rapporten in de browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Zoek Onderdelen" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "Onderdelen weergeven in zoekscherm" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "Zoek leveranciersonderdelen" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "Leveranciersonderdelen weergeven in zoekscherm" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Fabrikant onderdelen zoeken" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "Fabrikant onderdelen weergeven in zoekscherm" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "Zoek categorieën" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "Toon onderdeelcategorieën in zoekvenster" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "Zoek in Voorraad" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "Toon voorraad items in zoekvenster" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "Verberg niet beschikbare voorraad items" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "Voorraadartikelen die niet beschikbaar zijn niet in het zoekvenster weergeven" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "Locaties doorzoeken" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "Toon voorraadlocaties in zoekvenster" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "Zoek bedrijven" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "Toon bedrijven in zoekvenster" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Zoek Bouworders" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "Inkooporders Zoeken" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "Toon inkooporders in het zoekvenster" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "Inactieve Inkooporders Weglaten" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inactieve inkooporders weglaten in het zoekvenster" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Verkooporders zoeken" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "Toon verkooporders in het zoekvenster" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "Inactieve Verkooporders Weglaten" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Zoek retourorders" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "Inactieve retourbestellingen weglaten" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "Inactieve retourorders uitsluiten in zoekvenster" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "Zoekvoorbeeld resultaten" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "Aantal resultaten om weer te geven in elk gedeelte van het zoekvenster" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "Regex zoeken" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "Schakel reguliere expressies in zoekopdrachten in" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "Hele woorden zoeken" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "Zoekopdrachten geven resultaat voor hele woord overeenkomsten" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Toon hoeveelheid in formulieren" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "Hoeveelheid beschikbare onderdelen in sommige formulieren weergeven" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "Escape-toets sluit formulieren" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "Gebruik de Escape-toets om standaard formulieren te sluiten" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Vaste navigatiebalk" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "De navigatiebalk positie is gefixeerd aan de bovenkant van het scherm" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Datum formaat" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Voorkeursindeling voor weergave van datums" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Onderdeel planning" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Toon informatie voor het plannen van onderdelen" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Voorraadcontrole onderdeel" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Toon voorraadinformatie van onderdeel (als voorraadcontrole functionaliteit is ingeschakeld)" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "Tabel tekenreekslengte" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "Standaard sjabloon product onderdeel" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "Het onderdeellabelsjabloon dat automatisch wordt geselecteerd" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "Standaard sjabloon voorraad onderdeel" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "Standaard label van voorraadlocatie" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "Foutrapportages ontvangen" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "Meldingen ontvangen van systeemfouten" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Prijs" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "Eindpunt" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "Eindpunt waarop deze webhook wordt ontvangen" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "Naam van deze webhook" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Actief" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "Is deze webhook actief" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "Token" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "Token voor toegang" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Geheim" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "Gedeeld geheim voor HMAC" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "Bericht ID" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Host" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Koptekst" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "Koptekst van dit bericht" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Berichtinhoud" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "Inhoud van dit bericht" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "Aan gewerkt" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "Id" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Gepubliceerd" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Samenvatting" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "Gelezen" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3543,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "Afbeelding" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "Afbeelding" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbool" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definitie" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Nieuw: {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "Een nieuwe order is aangemaakt en aan u toegewezen" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "Artikelen zijn ontvangen tegen een inkooporder" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Upload Bestand" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3620,19 +3621,19 @@ msgstr "Upload Bestand" msgid "Match Fields" msgstr "Vergelijk Velden" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Geïmporteerde onderdelen" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3643,186 +3644,186 @@ msgstr "Geïmporteerde onderdelen" msgid "Previous Step" msgstr "Vorige Stap" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Website" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "URL bedrijfswebsite" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Telefoonnummer" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Telefoonnummer voor contact" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Contact e-mailadres" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Contact" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Contactpunt" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Link naar externe bedrijfsinformatie" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "is klant" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "is leverancier" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "is fabrikant" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Fabriceert dit bedrijf onderdelen?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Standaardvaluta die gebruikt wordt voor dit bedrijf" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Bedrijf" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basis onderdeel" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Onderdeel selecteren" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3832,12 +3833,12 @@ msgstr "Onderdeel selecteren" msgid "Manufacturer" msgstr "Fabrikant" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Fabrikant selecteren" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3847,69 +3848,69 @@ msgstr "Fabrikant selecteren" msgid "MPN" msgstr "MPN" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Fabrikant artikel nummer (MPN)" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "URL voor externe link van het fabrikant onderdeel" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "Omschrijving onderdeel fabrikant" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Fabrikant onderdeel" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Parameternaam" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Waarde" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Parameterwaarde" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Eenheden" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Parameter eenheden" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3922,28 +3923,28 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd msgid "Supplier" msgstr "Leverancier" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Leverancier selecteren" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Selecteer fabrikant onderdeel" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3953,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "Opmerking" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "basisprijs" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3983,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "meerdere" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "Order meerdere" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4065,10 +4066,10 @@ msgstr "Afbeelding downloaden van URL" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4083,7 +4084,7 @@ msgstr "Klant" msgid "Uses default currency" msgstr "Gebruik standaard valuta" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4163,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Inkooporders" @@ -4186,7 +4187,7 @@ msgstr "Nieuwe Inkooporder" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Verkooporders" @@ -4211,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4279,7 +4280,7 @@ msgstr "Geen fabrikanten informatie beschikbaar" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Leveranciers" @@ -4328,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4377,8 +4378,8 @@ msgstr "Verwijder leveranciers onderdeel" msgid "No supplier information available" msgstr "Geen leveranciersinformatie beschikbaar" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4427,16 +4428,16 @@ msgstr "Koppel barcode aan leveranciers onderdeel" msgid "Update Part Availability" msgstr "Beschikbaarheid van onderdeel bijwerken" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Voorraadartikelen" @@ -4469,11 +4470,11 @@ msgstr "Bedrijven" msgid "New Company" msgstr "Nieuw Bedrijf" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Labelnaam" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Label beschrijving" @@ -4485,7 +4486,7 @@ msgstr "Label" msgid "Label template file" msgstr "Label template bestand" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Ingeschakeld" @@ -4509,7 +4510,7 @@ msgstr "Hoogte [mm]" msgid "Label height, specified in mm" msgstr "Label hoogte, gespecificeerd in mm" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Bestandsnaam Patroon" @@ -4517,14 +4518,14 @@ msgstr "Bestandsnaam Patroon" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Filters" @@ -4541,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4550,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "Totaalprijs" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4568,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "Inkooporder" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4577,192 +4578,192 @@ msgstr "Inkooporder" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Link naar externe pagina" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Verwachte datum voor levering van de bestelling. De bestelling wordt achterstallig na deze datum." -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Aangemaakt Door" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Gebruiker of groep verantwoordelijk voor deze order" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Orderreferentie" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Inkooporder status" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Bedrijf waar de artikelen van worden besteld" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "Leveranciersreferentie" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "Order referentiecode van leverancier" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "ontvangen door" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Datum van uitgifte" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Order uitgegeven op datum" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "Order voltooid op datum" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "Onderdeelleverancier moet overeenkomen met de Inkooporderleverancier" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "Hoeveelheid moet een positief getal zijn" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Bedrijf waaraan de artikelen worden verkocht" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Klantreferentie " -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "Klant order referentiecode" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Verzenddatum" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "verzonden door" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "Order kan niet worden voltooid omdat er geen onderdelen aangewezen zijn" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestelling kan niet worden voltooid omdat er onvolledige verzendingen aanwezig zijn" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Hoeveelheid artikelen" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "Artikelregel referentie" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "Artikel notities" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Context" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "Additionele context voor deze regel" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "Stukprijs" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "Leveranciersonderdeel moet overeenkomen met leverancier" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "verwijderd" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Order" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "Leveranciersonderdeel" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4772,261 +4773,261 @@ msgstr "Leveranciersonderdeel" msgid "Received" msgstr "Ontvangen" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "Aantal ontvangen artikelen" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Inkoopprijs" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Aankoopprijs per stuk" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "Waar wil de inkoper dat dit artikel opgeslagen wordt?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtueel onderdeel kan niet worden toegewezen aan een verkooporder" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Verkoopprijs" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Prijs per stuk" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Verzonden hoeveelheid" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Datum van verzending" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Gecontroleerd door" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Gebruiker die deze zending gecontroleerd heeft" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Zending" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Zendingsnummer" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Volgnummer" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Zending volginformatie" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "Factuurnummer" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "Referentienummer voor bijbehorende factuur" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "Verzending is al verzonden" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "Zending heeft geen toegewezen voorraadartikelen" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "Voorraadartikel is niet toegewezen" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan het voorraadartikel niet toewijzen aan een regel met een ander onderdeel" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "Verkooporder komt niet overeen met zending" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "Verzending komt niet overeen met verkooporder" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Regel" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "Verzendreferentie verkooporder" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Artikel" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "Selecteer voorraadartikel om toe te wijzen" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Voer voorraadtoewijzingshoeveelheid in" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "Order kan niet worden geannuleerd" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "Order is niet open" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Valuta Inkoopprijs" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "Leveranciersonderdeel moet worden gespecificeerd" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "Inkooporder moet worden gespecificeerd" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "De leverancier moet overeenkomen met de inkooporder" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "Inkooporder moet overeenkomen met de leverancier" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "Artikel" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "Artikelregel komt niet overeen met inkooporder" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "Selecteer bestemmingslocatie voor ontvangen artikelen" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Voer serienummers in voor inkomende voorraadartikelen" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "Streepjescode is al in gebruik" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "Hoeveelheid als geheel getal vereist voor traceerbare onderdelen" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "Artikelen moeten worden opgegeven" @@ -5038,51 +5039,51 @@ msgstr "Bestemmingslocatie moet worden opgegeven" msgid "Supplied barcode values must be unique" msgstr "Geleverde streepjescodewaarden moeten uniek zijn" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "Valuta verkoopprijs" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "Geen verzenddetails opgegeven" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "Artikelregel is niet gekoppeld aan deze bestelling" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "Hoeveelheid moet positief zijn" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Voer serienummers in om toe te wijzen" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "Verzending is al verzonden" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "Zending is niet gekoppeld aan deze bestelling" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "Geen overeenkomst gevonden voor de volgende serienummers" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "De volgende serienummers zijn al toegewezen" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5090,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "Achterstallige inkooporder" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Inkooporder {po} is nu achterstallig" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "Achterstallige Verkooporder" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Verkooporder {so} is nu achterstallig" @@ -5476,579 +5477,579 @@ msgstr "Nieuwe Verzending" msgid "Match Supplier Parts" msgstr "Leveranciersonderdelen Vergelijken" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "Verkooporder niet gevonden" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Prijs niet gevonden" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "{part} stukprijs bijgewerkt naar {price}" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "{part} stukprijs bijgewerkt naar {price} en aantal naar {qty}" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "Onderdeel-id" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Onderdeel naam" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "Onderdeel omschrijving" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "In bestelling" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Onderdelen" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "Binnenkomende Inkooporder" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "Uitgaande Verkooporder" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "Geproduceerde voorraad door Productieorder" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "Voorraad vereist voor Productieorder" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Standaard locatie" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Totale Voorraad" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Beschikbare Voorraad" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Onderdeel Categorie" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Onderdeel Categorieën" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Standaard locatie voor onderdelen in deze categorie" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Onderdelen mogen niet rechtstreeks aan een structurele categorie worden toegewezen, maar kunnen worden toegewezen aan subcategorieën." -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Onderdeel naam" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Onderdeel Categorie" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "Intern Onderdeelnummer" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "Standaardleverancier" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "Eenheden voor dit onderdeel" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "Onderdeel voor voorraadcontrole" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6060,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "Datum" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "Aantal onderdelen" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "De template van de parameter moet uniek zijn" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "Parameternaam" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parameter Template" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "Parameterwaarde" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "Standaard Parameter Waarde" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "Stuklijstartikel" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "Geen onderdelen geselecteerd" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6399,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "Afbeelding kopiëren" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Parameters kopiëren" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "Parameter data kopiëren van het originele onderdeel" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Ongeldige hoeveelheid" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6706,13 +6707,14 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "" +#, fuzzy +#| msgid "This Sales Order has not been fully allocated" +msgid "This BOM has not been validated." +msgstr "Deze Verkooporder is niet volledig toegewezen" #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -6823,9 +6825,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7233,7 +7235,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7362,11 +7364,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7374,107 +7376,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "Selecteer afbeelding onderdeel" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "Afbeelding onderdeel bijgewerkt" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Afbeelding van onderdeel niet gevonden" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Geen actie gespecificeerd" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Geen overeenkomende actie gevonden" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Geen overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Overeenkomst gevonden voor streepjescodegegevens" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "Onvoldoende voorraad beschikbaar" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7488,11 +7490,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7508,7 +7510,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7516,7 +7518,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7524,19 +7526,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7544,15 +7546,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7565,8 +7567,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7574,49 +7576,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7656,7 +7658,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7672,7 +7674,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7732,113 +7734,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7850,35 +7852,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7890,40 +7892,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7943,103 +7945,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "Filters inkooporder" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "Verkooporder zoekopdracht filters" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8080,7 +8082,7 @@ msgstr "Totaal" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8106,12 +8108,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8137,7 +8139,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8146,438 +8148,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Voorraadlocatie" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Voorraadlocaties" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "Inkooporder Bron" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "Inkooporder voor dit voorraadartikel" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "Bestemming Verkooporder" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "Voorraadartikel is toegewezen aan een verkooporder" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8593,116 +8595,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "Artikel is toegewezen aan een verkooporder" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "Artikel is toegewezen aan een productieorder" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8923,7 +8925,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9560,7 +9562,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Verwijderen" @@ -12729,7 +12731,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13368,7 +13370,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13458,7 +13460,8 @@ msgstr "" #: templates/socialaccount/signup.html:10 #, python-format -msgid "You are about to use your %(provider_name)s account to login to\n" +msgid "" +"You are about to use your %(provider_name)s account to login to\n" "%(site_name)s.
As a final step, please complete the following form:" msgstr "" @@ -13538,31 +13541,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13578,15 +13581,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13598,39 +13601,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" - diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index e363bd989f..ddb60b0cdc 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: 2023-12-29 15:00+0000\n" -"PO-Revision-Date: 2023-12-12 03:57\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" +"PO-Revision-Date: 2024-01-11 11:22\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API-endepunkt ikke funnet" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Brukeren har ikke rettigheter til å se denne modellen" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Ingen verdi angitt" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Kunne ikke konvertere {original} til {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Ugyldig mengde oppgitt" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Ugyldig mengde oppgitt ({exc})" @@ -47,22 +47,22 @@ msgstr "Ugyldig mengde oppgitt ({exc})" msgid "Error details can be found in the admin panel" msgstr "Feildetaljer kan finnes i admin-panelet" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Oppgi dato" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Oppgi dato" msgid "Notes" msgstr "Notater" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Verdi '{name}' vises ikke i mønsterformat" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Angitt verdi samsvarer ikke med påkrevd mønster: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Oppgi passord" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Oppgi nytt passord" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Bekreft passord" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Bekreft nytt passord" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Gammelt passord" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "E-post (gjenta)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Bekreft e-postaddresse" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Du må angi samme e-post hver gang." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Den oppgitte primære e-postadressen er ikke gyldig." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Det oppgitte e-postdomenet er ikke godkjent." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Registrering er deaktivert." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Tom serienummerstreng" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Duplisert serienummer" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Ugyldig gruppesekvens: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Gruppesekvens {group} overskrider tillatt antall ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Ugyldig gruppesekvens: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Ingen serienummer funnet" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Antall unike serienumre ({len(serials)}) må samsvare med antallet ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Fjern HTML-tagger fra denne verdien" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Tilkoblingsfeil" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Serveren svarte med ugyldig statuskode" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Det har oppstått et unntak" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Serveren svarte med ugyldig \"Content-Length\"-verdi" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Bildestørrelsen er for stor" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Bildenedlasting overskred maksimal størrelse" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Ekstern server returnerte tomt svar" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Angitt URL er ikke en gyldig bildefil" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Logg inn på appen" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "E-post" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Metadata må være et python dict-objekt" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Utvidelse-metadata" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "JSON-metadatafelt, for bruk av eksterne utvidelser" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Uriktig formatert mønster" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Ukjent formatnøkkel spesifisert" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Mangler nødvendig formatnøkkel" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Referansefeltet kan ikke være tomt" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Referansen må samsvare påkrevd mønster" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Referansenummeret er for stort" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Fil mangler" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Mangler eksternlenke" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Vedlegg" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Velg fil å legge ved" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Velg fil å legge ved" msgid "Link" msgstr "Lenke" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Lenke til ekstern URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Kommentar" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Kommentar til fil" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Bruker" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "opplastet dato" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Filnavn kan ikke være tomt" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Ugyldig vedleggskatalog" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Filnavn inneholder ugyldig tegn '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Filnavn mangler filtype" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Vedlegg med dette filnavnet finnes allerede" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Feil ved endring av filnavn" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Duplikatnavn kan ikke eksistere under samme overordnede" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Ugyldig valg" msgid "Name" msgstr "Navn" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Navn" msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Beskrivelse (valgfritt)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "overkategori" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Sti" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Markdown-notater (valgfritt)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Strekkodedata" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Tredjeparts strekkodedata" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Strekkode-hash" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Unik hash av strekkodedata" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Eksisterende strekkode funnet" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Serverfeil" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "En feil har blitt logget av serveren." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Må være et gyldig tall" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Velg valuta ut fra tilgjengelige alternativer" @@ -463,289 +462,285 @@ msgstr "Velg valuta ut fra tilgjengelige alternativer" msgid "You do not have permission to change this user role." msgstr "Du har ikke tillatelse til å endre denne brukerrollen." -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "Bare superbrukere kan opprette nye brukere" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "Velkommen til {current_site.name}" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format -msgid "" -"Your account has been created.\n" -"\n" +msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." -msgstr "" -"Kontoen din har blitt opprettet.\n" -"\n" +msgstr "Kontoen din har blitt opprettet.\n\n" "Vennligst bruk funksjonen for tilbakestilling av passord for å få tilgang (på https://{domain})." -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Filnavn" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Ugyldig verdi" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Velg datafil for opplasting" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Filtypen støttes ikke" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Filen er for stor" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Ingen kolonner funnet i filen" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Ingen datarader funnet i fil" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Ingen datarader oppgitt" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Ingen datakolonner angitt" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Mangler påkrevd kolonne: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dupliaktkolonne: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "Eksternt bilde" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URLtil ekstern bildefil" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "Bulgarsk" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Tsjekkisk" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Dansk" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Tysk" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Gresk" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Engelsk" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Spansk" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Spansk (Meksikansk)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Persisk" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Finsk" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Fransk" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Hindi" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Ungarsk" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugisisk" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasil)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Slovensk" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" -msgstr "" +msgstr "Serbisk" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Kinesisk (forenklet)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Kinesisk (tradisjonell)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Sjekk av bakgrunnsarbeider mislyktes" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "E-post backend ikke konfigurert" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InvenTree's-systemets helsesjekker mislyktes" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Ventende" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Plassert" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Fullført" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Kansellert" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Tapt" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Returnert" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Pågående" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Sendt" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Trenger oppmerksomhet" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Skadet" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Ødelagt" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Avvist" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "I Karantene" @@ -857,23 +852,23 @@ msgstr "Returnert av kunde" msgid "Production" msgstr "Produksjon" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Retur" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Reparasjon" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Erstatt" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Refusjon" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Avvis" @@ -885,11 +880,11 @@ msgstr "Ugyldig fysisk enhet" msgid "Not a valid currency code" msgstr "Ikke en gyldig valutakode" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Svinn-verdien kan ikke være negativ" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Svinn kan ikke overstige 100%" @@ -897,27 +892,27 @@ msgstr "Svinn kan ikke overstige 100%" msgid "Invalid value for overage" msgstr "Ugyldig verdi for svinn" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Rediger brukerinformasjon" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Velg passord" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Passordfeltene må samsvare" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Feil passord angitt" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Systeminformasjon" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Om InvenTree" @@ -925,14 +920,14 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Produksjonen må avbrytes før den kan slettes" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Forbruksvare" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -946,14 +941,14 @@ msgstr "Valgfritt" msgid "Tracked" msgstr "Spores" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Tildelt" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -983,7 +978,7 @@ msgstr "Produksjonsordre" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Produksjonsordrer" @@ -999,9 +994,9 @@ msgstr "Produksjonsordrens del kan ikke endres" msgid "Build Order Reference" msgstr "Produksjonsordre-referanse" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1029,13 +1024,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Produksjonsordre som denne produksjonen er tildelt" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1046,7 +1041,7 @@ msgstr "Produksjonsordre som denne produksjonen er tildelt" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1133,8 +1128,8 @@ msgstr "Produksjonsstatus" msgid "Build status code" msgstr "Produksjonsstatuskode" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Batchkode" @@ -1143,7 +1138,7 @@ msgstr "Batchkode" msgid "Batch code for this build output" msgstr "Batchkode for denne produksjonsartikkelen" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1158,7 +1153,7 @@ msgstr "Forventet sluttdato" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldato for ferdigstillelse. Produksjonen vil være forfalt etter denne datoen." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Fullført dato" @@ -1176,10 +1171,10 @@ msgid "User who issued this build order" msgstr "Brukeren som utstedte denne produksjonsordren" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1200,7 +1195,7 @@ msgstr "Bruker eller gruppe ansvarlig for produksjonsordren" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1214,8 +1209,8 @@ msgstr "Produksjonsprioritet" msgid "Priority of this build order" msgstr "Produksjonsordrens prioritet" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1251,9 +1246,9 @@ msgid "Build output does not match Build Order" msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" @@ -1267,10 +1262,10 @@ msgstr "Produksjonsobjekt" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1280,7 +1275,7 @@ msgstr "Produksjonsobjekt" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1325,11 +1320,11 @@ msgstr "Produksjonselement må spesifisere en produksjonsartikkel, da master-del msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Lagervaren er overtildelt" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Tildelingsantall må være større enn null" @@ -1341,9 +1336,9 @@ msgstr "Mengden må være 1 for serialisert lagervare" msgid "Selected stock item does not match BOM line" msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1407,8 +1402,8 @@ msgstr "Heltallsverdi kreves for sporbare deler" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Heltallsverdi kreves, da stykklisten inneholder sporbare deler" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Serienummer" @@ -1425,7 +1420,7 @@ msgstr "Automatisk tildeling av serienummer" msgid "Automatically allocate required items with matching serial numbers" msgstr "Automatisk tildeling av nødvendige artikler med tilsvarende serienummer" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "Følgende serienummer finnes allerede eller er ugyldige" @@ -1433,10 +1428,10 @@ msgstr "Følgende serienummer finnes allerede eller er ugyldige" msgid "A list of build outputs must be provided" msgstr "En liste over produksjonsartikler må oppgis" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1474,9 +1469,9 @@ msgid "Location for completed build outputs" msgstr "Plassering for ferdige produksjonsartikler" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1548,7 +1543,7 @@ msgstr "Godta at lagervarer ikke er fullt tildelt til denne produksjonsordren" msgid "Required stock has not been fully allocated" msgstr "Nøvendig lagerbeholdning er ikke fullt tildelt" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Godta uferdig" @@ -1584,11 +1579,11 @@ msgstr "Produksjonsartikkel" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part må peke på den samme delen som produksjonsordren" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "Artikkelen må være på lager" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Tilgjengelig antall ({q}) overskredet" @@ -1601,7 +1596,7 @@ msgstr "Produksjonsartikkel må spesifiseres for tildeling av sporede deler" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Produksjonsartikkel kan ikke spesifiseres for tildeling av usporede deler" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Tildelingsartikler må oppgis" @@ -1766,8 +1761,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Lagerbeholdning er ikke fullt tildelt til denne Produksjonsordren" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1804,8 +1799,8 @@ msgid "Completed Outputs" msgstr "Fullførte byggeresultater" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1855,7 +1850,7 @@ msgstr "Lagerkilde" msgid "Stock can be taken from any available location." msgstr "Lagervare kan hentes fra alle tilgengelige plasseringer." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destinasjon" @@ -1868,7 +1863,7 @@ msgstr "Målplassering er ikke spesifisert" msgid "Allocated Parts" msgstr "Tildelte deler" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2024,19 +2019,19 @@ msgstr "Feil under lesing av fil (feil dimensjon)" msgid "Error reading file (data could be corrupted)" msgstr "Feil under lesing av fil (data kan være skadet)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Fil" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Velg fil å laste opp" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} Fil" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "Velg {name} fil som skal lastes opp" @@ -2049,1041 +2044,1041 @@ msgstr "Oppdatert" msgid "Timestamp of last update" msgstr "Tidsstempel for forrige oppdatering" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Unik prosjektkode" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Prosjektbeskrivelse" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "Bruker eller gruppe ansvarlig for dette prosjektet" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "Innstillingsnøkkel (må være unik - ufølsom for store of små bokstaver)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "Innstillings verdi" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "Valgt verdi er ikke et gyldig alternativ" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "Verdien må være en boolsk verdi" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "Verdien må være et heltall" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "Nøkkelstreng må være unik" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Ingen gruppe" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Et tomt domene er ikke tillatt." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Ugyldig domenenavn: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "Ingen programtillegg" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Omstart kreves" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "En innstilling har blitt endret som krever en omstart av serveren" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "Ventende migrasjoner" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "Antall ventende databasemigreringer" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "Navn på serverinstans" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "Strengbeskrivelse for serverinstansen" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Bruk instansnavn" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "Bruk instansnavnet på tittellinjen" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "Begrens visning av 'om'" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "Vis `about`-modal kun til superbrukere" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Firmanavn" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Internt firmanavn" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "Base-URL" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "Base-URL for serverinstans" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Standardvaluta" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "Velg grunnvalutaen for prisberegninger" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "Oppdateringsintervall for valuta" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Hvor ofte valutakurser skal oppdateres (sett til null for å deaktiverere)" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "dager" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "Valutaoppdaterings-plugin" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "Valgt valutaoppdaterings-plugin" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Last ned fra URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Tillat nedlastning av eksterne bilder og filer fra ekstern URL" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Nedlastingsgrense" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Maksimal tillatt nedlastingsstørrelse for eksternt bilde" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "User-Agent brukt for å laste ned fra URL" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Tillat overstyring av User-Agent brukt for å laste ned bilder og filer fra eksterne URLer (lå stå blank for standard)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "Streng URL-validering" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "Krev skjemaspesifikasjon ved validering av URLer" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Krev bekreftelse" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Krev eksplisitt brukerbekreftelse for visse handlinger." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Tredybde" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Standard tredybde for trevisning. Dypere nivåer kan lastes inn ved behov." -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Intervall for oppdateringssjekk" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "Tidsintervall for å se etter oppdateringer(sett til null for å skru av)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Automatisk sikkerhetskopiering" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Aktiver automatisk sikkerhetskopiering av database og mediafiler" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Automatisk sikkerhetskopieringsintervall" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Angi antall dager mellom automatiske sikkerhetskopieringshendelser" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "Slettingsintervall for oppgaver" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "Bakgrunnsoppgaveresultater vil bli slettet etter antall angitte dager" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "Slettingsintervall for feillogg" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "Feilloggene vil bli slettet etter et angitt antall dager" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "Slettingsintervall for varsler" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Brukervarsler slettes etter angitt antall dager" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Strekkodestøtte" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "Aktiver støtte for strekkodeleser i webgrensesnittet" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Innlesingsforsinkelse for strekkode" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Tidsforsinkelse for behandling av strekkode" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Støtte for strekkodewebkamera" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "Tillat strekkodelesning via webkamera i nettleseren" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "Delrevisjoner" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "Aktiver revisjonsfeltet for Del" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "IPN regex" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "Regulært uttrykksmønster for matching av internt delnummer" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Tilat duplikat av internt delnummer" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "Tillat flere deler å dele samme interne delnummer" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Tillat redigering av internt delnummer" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "Tillat endring av IPN-verdien mens du redigerer en del" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Kopier BOM-data fra del" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "Kopier BOM-data som standard når du dupliserer en del" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "Kopier parameterdata fra del" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "Kopier parameterdata som standard ved duplisering av en del" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "Kopier testdata fra del" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "Kopier testdata som standard ved duplisering av en del" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Kopier designmaler for kategoriparametere" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "Kopier parametermaler for kategori ved oppretting av en del" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Mal" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Deler er maler som standard" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Sammenstilling" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "Deler kan settes sammen fra andre komponenter som standard" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Komponent" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "Deler kan bli brukt som underkomponenter som standard" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Kjøpbar" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Deler er kjøpbare som standard" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Salgbar" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Deler er salgbare som standard" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Sporbar" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Deler er sporbare som standard" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Virtuelle" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Deler er virtuelle som standard" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Vis import i visninger" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "Vis importveiviseren i noen deler visninger" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Vis relaterte deler" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Vis relaterte deler i en del" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Innledende lagerbeholdningsdata" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Tillat oppretting av innledende lagerbeholdning når en ny del opprettes" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Innledende leverandørdata" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Tillat oppretting av innledende leverandørdata når en ny del opprettes" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Visningsformat for delnavn" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Format for å vise delnavnet" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Standardikon for delkategorier" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Standardikon for delkategorier (tomt betyr ingen ikon)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "Tving parameterenheter" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "Hvis det er angitt en enhet, skal parameterverdiene samsvare med de angitte enhetene" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "Minimum antall desimalplasser for priser" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Minimum antall desimalplasser som skal vises når man gjengir prisdata" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "Maksimalt antall desimalplasser for priser" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Maksimalt antall desimalplasser som skal vises når man gjengir prisdata" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Bruk leverandørpriser" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Inkluder leverandørprisbrudd i beregninger av totalpriser" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Innkjøpshistorikkoverstyring" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Historiske innkjøpspriser overstyrer leverandørprisnivåer" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "Bruk lagervarepriser" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Bruk priser fra manuelt innlagte lagervarer for prisberegninger" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "Lagervare prisalder" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Unnta lagervarer som er eldre enn dette antall dager fra prisberegninger" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "Bruk Variantpriser" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "Inkluder variantpriser i beregninger av totale priser" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "Kun aktive varianter" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "Bruk kun aktive variantdeler til beregning av variantprising" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "Intervall for rekalkulering av priser" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "Antall dager før delpriser blir automatisk oppdatert" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Interne Priser" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "Aktiver interne priser for deler" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Intern prisoverstyring" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "Hvis tilgjengelig, overstyrer interne priser kalkulering av prisområde" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Aktiver etikettutskrift" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Aktiver utskrift av etiketter fra nettleseren" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "Etikettbilde-DPI" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "DPI-oppløsning når når det genereres bildefiler for sending til utvidelser for etikettutskrift" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Aktiver Rapporter" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Aktiver generering av rapporter" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Feilsøkingsmodus" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Generer rapporter i feilsøkingsmodus (HTML-output)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Sidestørrelse" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Standard sidestørrelse for PDF-rapporter" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Aktiver Testrapporter" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Aktiver generering av testrapporter" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Legg ved testrapporter" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Når det skrives ut en Testrapport, legg ved en kopi av Testrapporten på den assosierte Lagervaren" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "Globalt Unike Serienummer" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "Serienummer for lagervarer må være globalt unike" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Automatisk tildeling av Serienummer" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Aumatisk fyll ut serienummer i skjemaer" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Slett oppbrukt lagerbeholdning" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Bestemmer standard oppførsel når en lagervare er oppbrukt" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "Batchkodemal" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "Mal for generering av standard batchkoder for lagervarer" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "Lagerbeholdning utløper" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "Aktiver funksjonalitet for utløp av lagerbeholdning" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "Selg utløpt lagerbeholdning" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "Tillat salg av utgått lagerbeholdning" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "Foreldet lagerbeholdning tidsintervall" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "Antall dager før lagervarer er ansett som foreldet før utløp" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "Produsér Utløpt Lagerbeholdning" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "Tillat produksjon med utløpt lagerbeholdning" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "Kontroll over eierskap av lagerbeholdning" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "Aktiver eierskap over lagerplasseringer og -varer" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "Lagerplassering standard ikon" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "Lagerplassering standard ikon (tomt betyr ingen ikon)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "Vis installerte lagervarer" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "Vis installerte lagervarer i lagertabeller" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "Produksjonsordre-referansemønster" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "Nødvendig mønster for å generere Produksjonsordre-referansefeltet" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "Aktiver returordrer" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "Aktiver returordrefunksjonalitet i brukergrensesnittet" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "Returordre-referansemønster" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "Påkrevd mønster for å generere returordrereferansefelt" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "Rediger fullførte returordrer" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "Tillat redigering av returordrer etter de er fullført" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "Salgsordre-referansemønster" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "Påkrevd mønster for å generere salgsordrereferansefelt" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "Salgsordre standard fraktmetode" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "Aktiver opprettelse av standard forsendelse med salgsordrer" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "Rediger fullførte salgsordrer" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Tillat redigering av salgsordrer etter de har blitt sendt eller fullført" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "Referansemønster for innkjøpsordre" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "Obligatorisk mønster for generering av referansefelt for innkjøpsordre" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "Rediger fullførte innkjøpsordre" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Tillat redigering av innkjøpsordre etter at de har blitt sendt eller fullført" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Aktiver passord glemt" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Ativer funskjon for glemt passord på innloggingssidene" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Aktiver registrering" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "Aktiver SSO" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "Aktiver SSO på innloggingssidene" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "Aktiver SSO-registrering" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Aktiver selvregistrering via SSO for brukere på innloggingssiden" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "E-postadresse kreves" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "Krevt at brukere angir e-post ved registrering" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "Auto-utfyll SSO-brukere" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "Fyll automatisk ut brukeropplysninger fra SSO-kontodata" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "E-post to ganger" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "Spør brukeren om e-post to ganger ved registrering" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Passord to ganger" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "Spør brukeren om passord to ganger ved registrering" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Tillatte domener" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Begrens registrering til bestemte domener (kommaseparert, begynner med @)" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Gruppe ved registrering" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "Gruppe nye brukere blir tilknyttet ved registrering" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "Krev MFA" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Brukere må bruke flerfaktorsikkerhet." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Sjekk utvidelser ved oppstart" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Sjekk at alle utvidelser er installert ved oppstart - aktiver i containermiljøer" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "Aktiver URL-integrasjon" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "Tillat utvidelser å legge til URL-ruter" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "Aktiver navigasjonsintegrasjon" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "Tillat utvidelser å integrere mot navigasjon" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "Aktiver app-integrasjon" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "Tillat utvidelser å legge til apper" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "Aktiver tidsplanintegrasjon" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "Tillat utvidelser å kjøre planlagte oppgaver" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "Aktiver hendelsesintegrasjon" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "Tillat utvidelser å reagere på interne hendelser" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "Aktiver prosjektkoder" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "Aktiver prosjektkoder for å spore prosjekter" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "Varetellingsfunksjonalitet" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Aktiver varetellingsfunksjonalitet for å registrere lagernivåer og regne ut lagerverdi" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "Ekskluder eksterne plasseringer" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Eksluder lagervarer i eksterne plasseringer fra varetellinger" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "Automatisk varetellingsperiode" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Antall dager mellom automatisk varetellingsregistrering (sett til null for å deaktivere)" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "Rapportslettingsintervall" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Varetellingsrapporter vil slettes etter angitt antall dager" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "Vis brukernes fulle navn" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "Vis brukernes fulle navn istedet for brukernavn" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "Innstillingsnøkkel (må være unik - ufølsom for store og små bokstaver" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "Skjul inaktive elementer" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skjul inaktive deler i resultater som vises på hjemmesiden" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Vis abonnerte deler" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Vis abonnerte deler på startsiden" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Vis abonnerte kategorier" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Vis abonnerte delkatekorier på startsiden" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Vis nyeste deler" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Vis nyeste deler på startsiden" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Vis uvaliderte stykklister" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "Vis stykklister som venter på validering på startsiden" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Vis nylige lagerendringer" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "Vis nylig endrede lagervarer på startsiden" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Vis lav lagerbeholdning" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Vis lave lagervarer på startsiden" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Vis tomme lagervarer" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Vis tom lagerbeholdning på startsiden" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Vis nødvendig lagerbeholdning" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "Vis lagervarer som trengs for produksjon på startsiden" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Vis utløpt lagerbeholdning" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Vis utløpte lagervarer på startsiden" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Vis foreldet lagerbeholdning" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Vis foreldet lagerbeholdning på startsiden" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Vis ventende produksjoner" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Vi ventende produksjoner på startsiden" @@ -3095,450 +3090,450 @@ msgstr "Vis forfalte produksjoner" msgid "Show overdue builds on the homepage" msgstr "Vis forfalte produksjoner på startsiden" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "Vis utestående Innkjøpsordrer" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "Vis utestående Innkjøpsordrer på startsiden" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "Vis forfalte Innkjøpsordrer" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "Vis forfalte Innkjøpsordrer på startsiden" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "Vis utestående Salgsordrer" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "Vis utestående Salgsordrer på startsiden" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "Vis forfalte SOer" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "Vis forfalte SOer på startsiden" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "Vis ventende SO-forsendelser" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "Vis ventende SO-forsendelser på startsiden" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Vis Nyheter" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Vis nyheter på startsiden" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "Innebygd etikettvisning" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Vis PDF-etiketter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "Standard etikettskriver" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "Konfigurer hvilken etikettskriver som skal være valgt som standard" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "Innebygd rapportvisning" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Vis PDF-rapporter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Søk i Deler" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "Vis deler i forhåndsvsningsvinduet for søk" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "Søk i Leverandørdeler" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "Vis leverandørdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Søk i Produsentdeler" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "Vis produsentdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Skjul Inaktive Deler" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "Ekskluder inaktive deler fra forhåndsvisningsvinduet for søk" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "Søk i kategorier" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "Vis delkategorier i forhåndsvisningsvinduet for søk" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "Søk i lagerbeholdning" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "Vis lagervarer i forhåndsvisningsvinduet for søk" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "Skjul utilgjengelige Lagervarer" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "Ekskluder lagervarer som ikke er tilgjengelige fra forhåndsvisningsvinduet for søk" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "Søk i Plasseringer" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "Vis lagerplasseringer i forhåndsvisningsvinduet for søk" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "Søk i Firma" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "Vis firma i forhåndsvsningsvinduet for søk" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Søk i Produksjonsordrer" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "Vis produksjonsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "Søk i Innkjøpsordrer" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "Vis innkjøpsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "Ekskluder inaktive Innkjøpsordrer" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "Ekskluder inaktive innkjøpsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Søk i Salgsordrer" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "Vis salgsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "Ekskluder Inaktive Salgsordrer" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "Ekskluder inaktive salgsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Søk i Returordrer" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "Vis returordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "Ekskluder Inaktive Returordrer" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "Ekskluder inaktive returordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "Forhåndsvisning av søkeresultater" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "Antall resultater å vise i hver seksjon av søkeresultatsforhåndsvisningen" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "Regex-søk" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "Aktiver regulære uttrykk i søkeord" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "Helordsøk" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "Søk returnerer resultater for treff med hele ord" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Vis antall i skjemaer" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "Vis antall tilgjengelige deler i noen skjemaer" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "Escape-knappen lukker skjemaer" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "Bruk Escape-knappen for å lukke modal-skjemaer" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Fast navigasjonsbar" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "Navigasjonsbarens posisjon er fast på toppen av skjermen" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Datoformat" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Foretrukket format for å vise datoer" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Delplanlegging" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Vis delplanleggingsinformasjon" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Lagertelling for Del" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Vis lagertellingsinformasjon for del (om lagertellingsfunksjonalitet er aktivert)" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "Tabellstrenglengde" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "Maksimal lengdegrense for tekst vist i tabeller" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "Standard etikettmal for del" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "Etikettmalen for del som velges automatisk" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "Standard etikettmal for lagervare" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "Etikettmalen for lagervare som velges automatisk" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "Standard etikettmal for lagerplassering" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "Etikettmalen for lagerplassering som velges automatisk" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "Motta feilrapporter" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "Motta varsler om systemfeil" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "Antall for prisbrudd" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Pris" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "Enhetspris på spesifisert antall" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "Endepunkt" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "Endepunktet hvor denne webhooken er mottatt" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "Navn for webhooken" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Aktiv" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "Er webhooken aktiv" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "Sjetong" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "Nøkkel for tilgang" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Hemmelig" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "Delt hemmlighet for HMAC" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "Melding ID" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "Unik Id for denne meldingen" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Vert" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "Verten denne meldingen ble mottatt fra" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Tittel" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "Overskrift for denne meldingen" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Brødtekst" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "Innholdet i meldingen" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "Endepunktet meldingen ble mottatt fra" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "Arbeidet med" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "Id" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tittel" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Publisert" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Forfatter" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Sammendrag" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "Les" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "Er dette nyhetselementet lest?" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3548,76 +3543,76 @@ msgstr "Er dette nyhetselementet lest?" msgid "Image" msgstr "Bilde" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "Bildefil" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "Enhetsnavn må være en gyldig identifikator" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "Enhetsnavn" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "Valgfritt enhetssymbol" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definisjon" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "Enhetsdefinisjon" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Ny {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "En ny ordre har blitt opprettet og tilordnet til deg" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} kansellert" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "En ordre som er tildelt til deg ble kansellert" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "Artikler mottatt" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "Artikler har blitt mottatt mot en innkjøpsordre" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "Artikler har blitt mottatt mot en returordre" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "Feil oppstått i utvidelse" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Last opp fil" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3625,19 +3620,19 @@ msgstr "Last opp fil" msgid "Match Fields" msgstr "Sammelign felter" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "Sammenlign varer" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "Matching av felter mislyktes" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Deler importert" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3648,186 +3643,186 @@ msgstr "Deler importert" msgid "Previous Step" msgstr "Forrige trinn" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Beskrivelse av firma" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "Beskrivelse av firmaet" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Nettside" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Bedriftens nettside URL" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Telefonnummer" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Kontakt-telefonnummer" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Kontakt e-post" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Kontakt" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Kontaktpunkt" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Link til ekstern bedriftsinformasjon" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "er kunde" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Selger du varer til dette firmaet?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "er leverandør" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Kjøper du varer fra dette firmaet?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "er produsent" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Produserer dette firmaet deler?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Standardvaluta brukt for dette firmaet" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Firma" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "Velg selskap" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "Adressetittel" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "Tittel som beskriver addressen" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "Hovedadresse" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "Sett som hovedadresse" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "Linje 1" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "Adresselinje 1" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "Linje 2" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "Adresselinje 2" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "Postnummer" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "Poststed/område" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "Postnummerets by/område" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "Delstat/provins" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "Delstat eller provins" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "Land" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "Adressens land" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "Notater til transportør" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "Notater for transportør" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "Interne fraktnotater" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "Fraktnotater for internt bruk" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "Lenke til adresseinformasjon (ekstern)" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Basisdel" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Velg del" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3837,12 +3832,12 @@ msgstr "Velg del" msgid "Manufacturer" msgstr "Produsent" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Velg produsent" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3852,69 +3847,69 @@ msgstr "Velg produsent" msgid "MPN" msgstr "MPN" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Produsentens varenummer" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "URL for ekstern produsentdel-lenke" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "Produsentens delbeskrivelse" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Produsentdeler" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Parameternavn" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Verdi" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Parameterverdi" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Enheter" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Parameterenheter" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Pakkeenhetene må være komptible med delens basisenhet" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Pakkeenhet må være mer enn null" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3927,28 +3922,28 @@ msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel" msgid "Supplier" msgstr "Leverandør" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Velg leverandør" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Leverandørens lagerbeholdningsenhet" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Velg produsentdel" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "URL for ekstern leverandørdel-lenke" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "Leverandørens delbeskrivelse" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3958,27 +3953,27 @@ msgstr "Leverandørens delbeskrivelse" msgid "Note" msgstr "Notat" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "grunnkostnad" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimum betaling (f.eks. lageravgift)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Emballasje" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "Delemballasje" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3988,27 +3983,27 @@ msgstr "Delemballasje" msgid "Pack Quantity" msgstr "Pakkeantall" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Totalt antall i en enkelt pakke. La være tom for enkeltenheter." -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "flere" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "Bestill flere" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "Antall tilgjengelig fra leverandør" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "Tilgjengelighet oppdatert" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "Dato for siste oppdatering av tilgjengelighetsdata" @@ -4070,10 +4065,10 @@ msgstr "Last ned bilde fra URL" msgid "Delete image" msgstr "Slett bilde" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4088,7 +4083,7 @@ msgstr "Kunde" msgid "Uses default currency" msgstr "Bruker standardvaluta" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4168,7 +4163,7 @@ msgstr "Leverandørs lagerbeholdning" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Innkjøpsordrer" @@ -4191,7 +4186,7 @@ msgstr "Ny innkjøpsordre" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Salgsordre" @@ -4216,7 +4211,7 @@ msgstr "Tildelt lagerbeholdning" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "Returordrer" @@ -4284,7 +4279,7 @@ msgstr "Ingen produsentinformasjon tilgjengelig" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Leverandører" @@ -4333,7 +4328,7 @@ msgid "Addresses" msgstr "Adresser" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4382,8 +4377,8 @@ msgstr "Slett Leverandørdel" msgid "No supplier information available" msgstr "Ingen leverandørinformasjon tilgjengelig" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4432,16 +4427,16 @@ msgstr "Koble strekkode til Leverandørdel" msgid "Update Part Availability" msgstr "Oppdater Delens Tilgjengelighet" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Lagervarer" @@ -4474,11 +4469,11 @@ msgstr "Firmaer" msgid "New Company" msgstr "Nytt Firma" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Etikettnavn" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Etikettbeskrivelse" @@ -4490,7 +4485,7 @@ msgstr "Etikett" msgid "Label template file" msgstr "Etikett-malfil" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Aktivert" @@ -4514,7 +4509,7 @@ msgstr "Høyde [mm]" msgid "Label height, specified in mm" msgstr "Etiketthøyde, spesifisert i mm" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Filnavnmønster" @@ -4522,14 +4517,14 @@ msgstr "Filnavnmønster" msgid "Pattern for generating label filenames" msgstr "Mønster for generering av etikett-filnavn" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "Søkefiltre (kommaseparert liste over nøkkel=verdi-par)" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Filtre" @@ -4546,7 +4541,7 @@ msgstr "QR-kode" msgid "QR code" msgstr "QR-kode" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4555,11 +4550,11 @@ msgstr "QR-kode" msgid "Total Price" msgstr "Total pris" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "Ingen samsvarende innkjøpsordre funnet" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4573,7 +4568,7 @@ msgstr "Ingen samsvarende innkjøpsordre funnet" msgid "Purchase Order" msgstr "Innkjøpsordre" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4582,192 +4577,192 @@ msgstr "Innkjøpsordre" msgid "Return Order" msgstr "Returordre" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Ukjent" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "Total pris for denne ordren" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "Ordrevaluta" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "Valuta for denne ordren (la stå tom for å bruke firmastandard)" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "Kontakten samsvarer ikke med valgt firma" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "Ordrebeskrivelse (valgfritt)" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "Velg prosjektkode for denne ordren" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Lenke til ekstern side" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Forventet dato for levering av ordre. Bestillingen vil være forfalt etter denne datoen." -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Opprettet av" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Bruker eller gruppe ansvarlig for ordren" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "Kontaktpunkt for denne ordren" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "Selskapsadresse for denne ordren" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Ordrereferanse" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Status for innkjøpsordre" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Firma som varene blir bestilt fra" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "Leverandørreferanse" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "Leverandørens ordrereferanse" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "mottatt av" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Sendt dato" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Dato bestillingen ble sendt" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "Dato ordre ble fullført" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "Delleverandør må matche PO-leverandør" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "Mengde må være positiv" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Firma som varene selges til" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Kundereferanse " -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "Kundens ordrereferanse" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Forsendelsesdato" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "sendt av" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "Bestillingen kan ikke fullføres da ingen deler er tilordnet" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "Kun en åpen ordre kan merkes som fullført" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Bestillingen kan ikke fullføres da det finnes ufullstendige forsendelser" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "Denne ordren kan ikke fullføres da det fortsatt er ufullstendige artikler" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Antall" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "Linjereferanse" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "Linjenotater" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Måldato for denne linjen (la stå tomt for å bruke måldatoen fra ordren)" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "Linjeelementbeskrivelse (valgfritt)" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Kontekst" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "Ytterligere kontekst for denne linjen" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "Enhetspris" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "Delens leverandør må samsvare med leverandør" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "slettet" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Ordre" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "Leverandørdel" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4777,261 +4772,261 @@ msgstr "Leverandørdel" msgid "Received" msgstr "Mottatt" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "Antall enheter mottatt" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Innkjøpspris" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Enhet-innkjøpspris" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "Hvor vil innkjøper at artikkelen skal lagres?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "Virtuell del kan ikke tildeles salgsordre" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "Kun salgbare deler kan tildeles en salgsordre" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Salgspris" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Enhets-salgspris" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Sendt antall" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Dato for forsendelse" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Leveringsdato" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "Dato for levering av forsendelse" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Sjekket Av" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Brukeren som sjekket forsendelsen" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Forsendelse" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Forsendelsesnummer" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Sporingsnummer" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Sporingsinformasjon for forsendelse" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "Fakturanummer" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "Referansenummer for tilknyttet faktura" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "Forsendelsen er allerede sendt" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "Forsendelsen har ingen tildelte lagervarer" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "Lagervarer er ikke blitt tildelt" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kan ikke tildele lagervare til en linje med annen del" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "Kan ikke tildele lagerbeholdning til en linje uten en del" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "Antall må være 1 for serialisert lagervare" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "Salgsordre samsvarer ikke med forsendelse" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "Forsendelsen samsvarer ikke med salgsordre" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Linje" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "Forsendelsesreferanse for salgsordre" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Artikkel" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "Velg lagervare å tildele" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Angi lagertildelingsmengde" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "Returordre-referanse" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "Firmaet delen skal returneres fra" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "Returordrestatus" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "Kun serialiserte artikler kan tilordnes en Returordre" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "Velg artikkel som skal returneres fra kunde" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "Mottatt Dato" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "Datoen denne returartikkelen ble mottatt" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Utfall" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "Utfall for dette linjeelementet" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "Kostnad forbundet med retur eller reparasjon for dette linjeelementet" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "Ordren kan ikke kanselleres" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "Tillat ordre å lukkes med ufullstendige linjeelementer" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "Ordren har ufullstendige linjeelementer" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "Ordren er ikke åpen" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Innkjøpsvaluta" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "Leverandørdel må angis" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "Innkjøpsordre må angis" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "Leverandør må samsvare med innkjøpsordre" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "Innkjøpsordre må samsvare med leverandør" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "Ordrelinje" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "Linjeelementet samsvarer ikke med innkjøpsordre" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "Velg lagerplassering for mottatte enheter" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "Angi batchkode for innkommende lagervarer" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Angi serienummer for innkommende lagervarer" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Strekkode" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "Skannet strekkode" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "Strekkode allerede i bruk" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "Heltallsverdi må angis for sporbare deler" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "Linjeelementer må være oppgitt" @@ -5043,51 +5038,51 @@ msgstr "Målplassering må angis" msgid "Supplied barcode values must be unique" msgstr "Angitte strekkodeverdier må være unike" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "Valuta for salgspris" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "Ingen forsendelsesopplysninger oppgitt" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "Linjeelement er ikke knyttet til denne ordren" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "Mengden må være positiv" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Skriv inn serienummer for å tildele" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "Forsendelsen er allerede sendt" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "Forsendelsen er ikke knyttet til denne ordren" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "Ingen treff funnet for følgende serienummer" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "Følgende serienummer er allerede tildelt" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "Returordrelinje" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "Linjeelementet samsvarer ikke med returordre" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "Linjeelementet er allerede mottatt" @@ -5095,24 +5090,24 @@ msgstr "Linjeelementet er allerede mottatt" msgid "Items can only be received against orders which are in progress" msgstr "Artikler kan bare mottas mot ordrer som pågår" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "Valuta for linje" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "Forfalt Innkjøpsordre" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Innkjøpsordre {po} er nå forfalt" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "Forfalt Salgsordre" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Salgsordre {so} er nå forfalt" @@ -5481,579 +5476,579 @@ msgstr "Ny forsendelse" msgid "Match Supplier Parts" msgstr "Match Leverandørdeler" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "Salgsordre ikke funnet" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Pris ikke funnet" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Oppdaterte {part} enhetspris to {price}" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Oppdaterte {part} enhetspris til {price} og antall til {qty}" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "Del-ID" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Delnavn" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "Delbeskrivelse" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revisjon" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Nøkkelord" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "Del-bilde" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "Kategori-ID" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "Kategorinavn" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "Standard plasserings-ID" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "Standard leverandør-ID" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variant av" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimal lagerbeholdning" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "På lager" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "I bestilling" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Brukt i" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "Produseres" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Minimal kostnad" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Maksimal kostnad" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "Overordnet ID" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "Overordnet navn" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Sti til kategori" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Deler" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "BOM-nivå" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "BOM artikkel-ID" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "Overodnet IPN" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "Del -IPN" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Minstepris" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Makspris" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "Innkommende innkjøpsordre" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "Utgående salgsordre" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "Lagervarer produsert av en produksjonsordre" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "Lagervarer påkrevd for produksjonsordre" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "Gyldig" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "Godkjenn hele Stykklisten" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "Dette alternativet må være valgt" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Standard plassering" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Total lagerbeholdning" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Tilgjengelig lagerbeholdning" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "Sett inn antall for prisberegning" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Delkategori" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Delkategorier" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Standardplassering for deler i denne kategorien" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Strukturell" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Deler kan ikke tilordnes direkte til en strukturell kategori, men kan tilordnes til underkategorier." -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Standard nøkkelord" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Standard nøkkelord for deler i denne kategorien" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Ikon" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Ikon (valgfritt)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Du kan ikke gjøre denne delkategorien strukturell fordi noen deler allerede er tilordnet den!" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "Ugyldig valg for overordnet del" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Delen '{self}' kan ikke brukes i BOM for '{parent}' (rekursiv)" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Delen '{parent}' er brukt i BOM for '{self}' (rekursiv)" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN må samsvare med regex-mønsteret {pattern}" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "Lagervare med dette serienummeret eksisterer allerede" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "Duplikat av internt delnummer er ikke tillatt i delinnstillinger" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "Del med dette Navnet, internt delnummer og Revisjon eksisterer allerede." -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "Deler kan ikke tilordnes strukturelle delkategorier!" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Delnavn" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "Er Mal" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "Er delen en maldel?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "Er delen en variant av en annen del?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "Delbeskrivelse (valgfritt)" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "Del-nøkkelord for å øke synligheten i søkeresultater" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategori" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Delkategori" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "Internt delnummer" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "Delrevisjon eller versjonsnummer" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "Hvor er denne artikkelen vanligvis lagret?" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Standard leverandør" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "Standard leverandørdel" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "Standard utløp" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "Utløpstid (i dager) for lagervarer av denne delen" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "Minimum tillatt lagernivå" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "Måleenheter for denne delen" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "Kan denne delen bygges fra andre deler?" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "Kan denne delen brukes til å bygge andre deler?" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "Har denne delen sporing av unike artikler?" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "Kan denne delen kjøpes inn fra eksterne leverandører?" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "Kan denne delen selges til kunder?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "Er denne delen aktiv?" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "Er dette en virtuell del, som et softwareprodukt eller en lisens?" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "Kontrollsum for BOM" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "Lagret BOM-kontrollsum" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "Stykkliste sjekket av" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "Stykkliste sjekket dato" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "Opprettingsbruker" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "Eier ansvarlig for denne delen" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Siste lagertelling" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "Selg flere" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "Valuta som brukes til å bufre prisberegninger" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "Minimal BOM-kostnad" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "Minste kostnad for komponentdeler" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "Maksimal BOM-kostnad" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "Maksimal kostnad for komponentdeler" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "Minimal innkjøpskostnad" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "Minimal historisk innkjøpskostnad" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "Maksimal innkjøpskostnad" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "Maksimal historisk innkjøpskostnad" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "Minimal intern pris" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "Minimal kostnad basert på interne prisbrudd" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "Maksimal intern pris" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "Maksimal kostnad basert på interne prisbrudd" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "Minimal leverandørpris" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "Minimumspris for del fra eksterne leverandører" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "Maksimal leverandørpris" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "Maksimalpris for del fra eksterne leverandører" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "Minimal Variantkostnad" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "Beregnet minimal kostnad for variantdeler" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "Maksimal Variantkostnad" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "Beregnet maksimal kostnad for variantdeler" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "Overstyr minstekostnad" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "Overstyr maksimal kostnad" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "Beregnet samlet minimal kostnad" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "Beregnet samlet maksimal kostnad" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "Minimal salgspris" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "Minimal salgspris basert på prisbrudd" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "Maksimal Salgspris" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "Maksimal salgspris basert på prisbrudd" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "Minimal Salgskostnad" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "Minimal historisk salgspris" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "Maksimal Salgskostnad" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "Maksimal historisk salgspris" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "Del for varetelling" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "Antall" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6065,334 +6060,334 @@ msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" msgid "Date" msgstr "Dato" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "Dato for utført lagertelling" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "Flere notater" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "Bruker som utførte denne lagertellingen" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "Minimal lagerkostnad" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "Estimert minimal kostnad for lagerbeholdning" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "Maksimal lagerkostnad" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "Estimert maksimal kostnad for lagerbeholdning" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "Rapport" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "Lagertellingsrapportfil (generert internt)" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "Antall deler" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "Antall deler dekket av varetellingen" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "Bruker som forespurte varetellingsrapporten" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "Testmaler kan bare bli opprettet for sporbare deler" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "Test med dette navnet finnes allerede for denne delen" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Testnavn" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "Angi et navn for testen" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "Testbeskrivelse" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "Legg inn beskrivelse for denne testen" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Påkrevd" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "Er det påkrevd at denne testen bestås?" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Krever verdi" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "Krever denne testen en verdi når det legges til et testresultat?" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Krever vedlegg" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "Krever denne testen et filvedlegg når du legger inn et testresultat?" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "Sjekkboksparameter kan ikke ha enheter" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "Sjekkboksparameter kan ikke ha valg" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "Valg må være unike" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "Navn på parametermal må være unikt" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "Parameternavn" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "Fysisk enheter for denne parameteren" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "Parameterbeskrivelse" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Sjekkboks" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "Er dette parameteret en sjekkboks?" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Valg" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gyldige valg for denne parameteren (kommaseparert)" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "Ugyldig valg for parameterverdi" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "Overordnet del" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametermal" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "Data" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "Parameterverdi" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standardverdi" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "Standard Parameterverdi" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "Del-ID eller delnavn" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "Unik del-ID-verdi" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "Delens interne delnummerverdi" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "Nivå" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "BOM-nivå" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "BOM-artikkel" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "Velg overordnet del" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "Underordnet del" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "Velg del som skal brukes i BOM" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "BOM-antall for denne BOM-artikkelen" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "Denne BOM-artikkelen er valgfri" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Denne BOM-artikkelen er forbruksvare (den spores ikke i produksjonsordrer)" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Svinn" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Forventet produksjonssvinn (absolutt eller prosent)" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "BOM-artikkelreferanse" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "BOM-artikkelnotater" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "Kontrollsum" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "BOM-linje kontrollsum" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Godkjent" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "Denne BOM-artikkelen er godkjent" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Arves" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Tillat Varianter" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Lagervarer for variantdeler kan brukes for denne BOM-artikkelen" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "Antall må være heltallsverdi for sporbare deler" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "Underordnet del må angis" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "BOM-artikkel erstatning" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "Erstatningsdel kan ikke være samme som hoveddelen" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "Overordnet BOM-artikkel" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "Erstatningsdel" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "Del 1" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "Del 2" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "Velg relatert del" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "Del-forhold kan ikke opprettes mellom en del og seg selv" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "Duplikatforhold eksisterer allerede" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Innkjøpsvaluta for lagervaren" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "Ingen deler valgt" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "Velg kategori" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "Original Del" @@ -6404,299 +6399,299 @@ msgstr "Velg original del å duplisere" msgid "Copy Image" msgstr "Kopier Bilde" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "Kopier bilde fra originaldel" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Kopier Stykkliste" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "Kopier stykkliste fra original del" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Kopier parametere" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "Kopier parameterdata fra originaldel" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "Kopier notater" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "Kopier notater fra originaldel" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Angi initiell lagermengde for denne delen. Hvis antall er null, er ingen lagerbeholdning lagt til." -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "Innledende lagerplassering" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "Angi initiell lagerplasering for denne delen" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "Velg leverandør (eller la stå tom for å hoppe over)" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "Velg produsent (eller la stå tom for å hoppe over)" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "Produsentens delenummer" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "Valgt firma er ikke en gyldig leverandør" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "Valgt firma er ikke en gyldig produsent" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "Produsentdel som matcher dette MPN-et, finnes allerede" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Dupliser del" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "Kopier innledende data fra en annen del" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "Innledende lagerbeholdning" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "Lag en del med innledende lagermengde" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "Leverandøropplysninger" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "Legg til innledende leverandørinformasjon for denne delen" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "Kopier kategoriparametre" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "Kopier parametermaler fra valgt delkategori" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "Eksisterende bilde" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "Filnavn for et eksisterende del-bilde" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "Bildefilen finnes ikke" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Begrens lagerbeholdningsrapport til en bestemt del og enhver variant av delen" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Begrens lagerbeholdningsrapport til en bestemt delkategori og alle underkategorier" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Begrens lagerbeholdningsrapport til en bestemt plasering og eventuelle underplasseringer" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "Ekskluder ekstern lagerbeholdning" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "Ekskluder lagervarer i eksterne lokasjoner" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "Generer rapport" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "Genererer rapport som inneholder beregnede lagerdata" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "Oppdater deler" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "Oppdater spesifiserte deler med beregnede lagerbeholdningsdata" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "Lagerbeholdningsfunksjonalitet er ikke aktivert" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "Overstyr beregnet verdi for minimumspris" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "Valuta for minstepris" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "Overstyr beregnet verdi for maksimal pris" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "Valuta for maksimal pris" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "Oppdater" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "Oppdater priser for denne delen" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Kan ikke konvertere fra gitte valutaer til {default_currency}" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "Minsteprisen kan ikke være større enn maksimal pris" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "Maksimal pris kan ikke være mindre enn minstepris" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "Velg del å kopiere BOM fra" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "Fjern eksisterende data" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "Fjern eksisterende BOM-artikler før kopiering" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "Inkluder arvede" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "Inkluder BOM-artikler som er arvet fra maldeler" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "Hopp over ugyldige rader" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "Kopier erstatningsdeler" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "Kopier erstatningsdeler når BOM-elementer dupliseres" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "Nullstill eksisterende BOM" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "Fjern eksisterende BOM-artikler før opplastning" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "Ingen del-kolonne angitt" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "Flere samsvarende deler funnet" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "Ingen samsvarende del funnet" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "Delen er ikke betegnet som en komponent" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "Antall ikke oppgitt" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Ugyldig antall" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "Minst en BOM-artikkel kreves" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "Totalt Antall" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "Total Kostnad Min" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "Total Kostnad Max" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "Lagertellingsrapport tilgjengelig" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "En ny lagertellingsrapport er tilgjengelig for nedlasting" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "Varsel om lav lagerbeholdning" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "Tilgjengelig lagerbeholdning for {part.name} har falt under det konfigurerte minimumsnivået" @@ -6711,13 +6706,12 @@ msgstr "Stykklisten har blitt endret og må godkjennes" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" -msgstr "Stykklisten for %(part)s ble sist sjekket av %(checker)s den %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" +msgstr "Denne BOMen ble sist sjekket av %(checker)s den %(check_date)s" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "Stykklisten for %(part)s er ikke godkjent." +msgid "This BOM has not been validated." +msgstr "Denne BOMen er ikke godkjent." #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -6828,9 +6822,9 @@ msgid "Add stocktake information" msgstr "Legg til lagertellingsinformasjon" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "Lagertelling" @@ -7238,7 +7232,7 @@ msgstr "Overstyr delprising" msgid "Edit" msgstr "Rediger" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7367,11 +7361,11 @@ msgstr "Opprett ny variant av del" msgid "Create a new variant part from this template" msgstr "Opprett en ny variant del fra denne malen" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Ukjent database" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "{version.inventreeInstanceTitle()} v{version.inventreVersion()}" @@ -7379,119 +7373,107 @@ msgstr "{version.inventreeInstanceTitle()} v{version.inventreVersion()}" msgid "Match References" msgstr "Match referanser" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "Kan ikke importere del {new_part.name} fordi det ikke er oppgitt noen kategori" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "Vel bilde for del" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "Oppdatert bilde for del" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Bilde for del ikke funnet" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "Delprising" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Ingen handling spesifisert" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Ingen samsvarende handling funnet" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Ingen treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Treff funnet for strekkodedata" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Strekkode samsvarer med ekisterende element" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "Ingen samsvarende del-data funnet" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "Finner ingen matchende leverandørdeler" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "Flere samsvarende leverandørdeler funnet" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "Fant leverandørdel" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "Artikkelen er allerede mottatt" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "Ingen treff for leverandørstrekkode" -#: plugin/base/barcodes/api.py:498 -#, fuzzy -#| msgid "Multiple matching supplier parts found" +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" -msgstr "Flere samsvarende leverandørdeler funnet" +msgstr "Flere samsvarende elementer funnet" -#: plugin/base/barcodes/api.py:503 -#, fuzzy -#| msgid "No matching line items" +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" -msgstr "Ingen samsvarende ordrelinjer" +msgstr "Ingen samsvarende element funnet" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 -#, fuzzy -#| msgid "Barcode does not match valid stock item" +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" -msgstr "Strekkoden samsvarer ikke med gyldig lagervare" +msgstr "Strekkoden samsvarer ikke med eksisterende lagervare" -#: plugin/base/barcodes/api.py:563 -#, fuzzy -#| msgid "Selected stock item does not match BOM line" +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" -msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" +msgstr "Lagervare samsvarer ikke med linjeelement" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "Utilstrekkelig lagerbeholdning" -#: plugin/base/barcodes/api.py:599 -#, fuzzy -#| msgid "Stock item assigned to sales order" +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "Lagervaren er tildelt en salgsordre" -#: plugin/base/barcodes/api.py:603 -#, fuzzy -#| msgid "No user information" +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" -msgstr "Ingen brukerinformasjon" +msgstr "Ikke nok informasjon" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "Fant flere leverandørdeler for strekkoden" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Fant flere innkjøpsordrer som samsvarer med '{order}'" @@ -7505,11 +7487,11 @@ msgstr "Ingen samsvarende innkjøpsordre for '{order}'" msgid "Purchase order does not match supplier" msgstr "Innkjøpsordre stemmer ikke med leverandør" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "Fant ikke ventende artikkel for leverandørdel" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "Mer informasjon nødvendig for å motta artikkelen" @@ -7522,12 +7504,10 @@ msgid "Scanned barcode data" msgstr "Skannet strekkodedata" #: plugin/base/barcodes/serializers.py:81 -#, fuzzy -#| msgid "PurchaseOrder to allocate items against" msgid "Purchase Order to allocate items against" msgstr "Innkjøpsordre å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "Innkjøpsordre er ikke ventende" @@ -7535,7 +7515,7 @@ msgstr "Innkjøpsordre er ikke ventende" msgid "PurchaseOrder to receive items against" msgstr "Innkjøpsordre å motta artikler mot" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "Innkjøpsordren har ikke blitt sendt" @@ -7543,47 +7523,35 @@ msgstr "Innkjøpsordren har ikke blitt sendt" msgid "Location to receive items into" msgstr "Plassering å motta deler til" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "Kan ikke velge en strukturell plassering" -#: plugin/base/barcodes/serializers.py:140 -#, fuzzy -#| msgid "PurchaseOrder to allocate items against" +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" -msgstr "Innkjøpsordre å tildele artikler mot" +msgstr "Salgsordre å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:147 -#, fuzzy -#| msgid "Purchase order is not pending" +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" -msgstr "Innkjøpsordre er ikke ventende" +msgstr "Salgsordre er ikke ventende" -#: plugin/base/barcodes/serializers.py:154 -#, fuzzy -#| msgid "PurchaseOrder to allocate items against" +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" -msgstr "Innkjøpsordre å tildele artikler mot" +msgstr "Salgsordrelinje å tildele artikler mot" #: plugin/base/barcodes/serializers.py:160 -#, fuzzy -#| msgid "PurchaseOrder to allocate items against" msgid "Sales order shipment to allocate items against" -msgstr "Innkjøpsordre å tildele artikler mot" +msgstr "Salgsordre-forsendelse å tildele artikler mot" -#: plugin/base/barcodes/serializers.py:167 -#, fuzzy -#| msgid "Shipment has already been shipped" +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" -msgstr "Forsendelsen er allerede sendt" +msgstr "Forsendelsen er allerede levert" -#: plugin/base/barcodes/serializers.py:173 -#, fuzzy -#| msgid "Quantity to Install" +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" -msgstr "Antall å installere" +msgstr "Antall å tildele" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "Utskrift av etikett mislyktes" @@ -7596,8 +7564,8 @@ msgid "Provides native support for barcodes" msgstr "Gir innebygd støtte for strekkoder" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7605,49 +7573,49 @@ msgstr "Gir innebygd støtte for strekkoder" msgid "InvenTree contributors" msgstr "InvenTree-bidragsytere" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "InvenTree-varsler" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "Integrerte utgående varslingsmetoder" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "Aktiver epostvarsler" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "Tillat sending av e-post for hendelsesvarsler" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "Aktiver Slack-varsler" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "Tillat sending av Slack-kanalmeldinger for hendelsesvarsler" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "Slack innkommende webhook" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "URL brukt til å sende meldinger til en Slack-kanal" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "Åpne lenke" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "InvenTree valutautveksling" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "Standard valutaintegrasjon" @@ -7687,7 +7655,7 @@ msgstr "Kantlinjer" msgid "Print a border around each label" msgstr "Skriv ut en kant rundt hver etikett" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "Liggende" @@ -7703,7 +7671,7 @@ msgstr "InvenTree etikett-ark skriver" msgid "Arrays multiple labels onto a single sheet" msgstr "Sprer ut flere etiketter på ett enkelt ark" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "Etiketten er for stor for sidestørrelse" @@ -7763,113 +7731,113 @@ msgstr "Leverandøren som fungerer som \"TME\"" msgid "Permission denied: only staff users can install plugins" msgstr "Tillatelse nektet: bare ansatt-brukere kan installere utvidelser" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "Installasjon av utvidelse vellykket" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Installerte utvidelsen til {path}" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "Installasjon av utvidelse mislyktes" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "Konfigurasjon av utvidelse" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "Konfigurasjon av utvidelser" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "Nøkkel" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "Utvidelsens \"Key\"" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "Navn på utvidelsen" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "Er utvidelsen aktiv" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "Installert" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "Eksempel-utvidelse" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "Innebygd utvidelse" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Utvidelse" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "Metode" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "Ingen forfatter funnet" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Utvidensen '{p}' er ikke kompatibel med nåværende InvenTree-versjon {v}" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Utvidelsen krever minst versjon {v}" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Utvidelsen krever maks versjon {v}" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "Aktiver PO" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "Aktiver Innkjøpsordrefunksjonalitet i InvenTree-grensesnittet" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "API-nøkkel" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "Nøkkel kreves for tilgang til eksternt API" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Numerisk" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "En numerisk innstilling" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "Valginnstilling" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "En innstilling med flere valg" @@ -7881,35 +7849,35 @@ msgstr "Eksempel valutakonverterings-utvidelse" msgid "InvenTree Contributors" msgstr "InvenTree-bidragsytere" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "Kilde-URL" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Kilde for pakken - dette kan være et egendefinert register eller en VCS-sti" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "Pakkenavn" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Navn på utvidelsespakke – kan også inneholde en versjonsindikator" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "Bekreft installasjon av utvidelse" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Dette vil installere denne utvidelsen nå i gjeldende instans. Instansen vil gå i vedlikehold." -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "Installasjonen ble ikke bekreftet" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "Enten pakkenavn eller URL må angis" @@ -7921,40 +7889,40 @@ msgstr "Full omlasting" msgid "Perform a full reload of the plugin registry" msgstr "Utfør en full omlasting av utvidelsesregisteret" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "Tvangsomlasting" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "Tving en omlasting av utvidelsesregisteret, selv om det allerede er lastet" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "Hent inn utvidelser" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "Hent inn utvidelser og legg dem til i registeret" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "Aktivér utvidelse" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "Aktivér denne utvidelsen" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "Ingen gyldige objekter angitt for mal" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Malfil '{template}' mangler eller eksisterer ikke" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "Testrapport" @@ -7974,103 +7942,103 @@ msgstr "Legal" msgid "Letter" msgstr "Letter" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Malnavn" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "Rapportmalfil" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "Beskrivelse av rapportmal" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "Rapportrevisjonsnummer (øker automatisk)" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "Sidestørrelse for PDF-rapporter" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "Generer rapport i landskapsorientering" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "Mønster for å generere rapportfilnavn" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "Rapportmal er aktiver" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "Lagervare-søkefilter (kommaseparert liste over nøkkel=verdi-par)" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "Inkluder installerte tester" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "Inkluder testresultater for lagervarer installert i sammenstilt artikkel" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "Produksjonsfiltre" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "Produksjons-søkefilter (kommaseparert liste over nøkkel=verdi-par" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "Delfiltre" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "Del-søkefilter (kommaseparert liste over nøkkel=verdi-par" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "Innkjøpsordre-søkefilter" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "Salgsordre-søkefilter" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "Returordre-søkefilter" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "Snutt" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "Rapportsnuttfil" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "Filbeskrivelse for snutt" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "Ressurs" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "Rapportressursfil" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "Ressursfilbeskrivelse" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "spørringsfiltre for lagerplassering (kommadelt liste av nøkkel=verdi-par)" @@ -8111,7 +8079,7 @@ msgstr "Total" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8137,12 +8105,12 @@ msgid "Test Results" msgstr "Testresultater" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "Resultat" @@ -8168,7 +8136,7 @@ msgid "Installed Items" msgstr "Installerte artikler" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Serienummer" @@ -8177,438 +8145,438 @@ msgstr "Serienummer" msgid "Asset file does not exist" msgstr "Asset-filen eksisterer ikke" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "Bildefil ikke funnet" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "part_image-taggen krever en Part-instans" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "company_image-taggen krever en Company-instans" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "Plasserings-ID" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "Plasseringsnavn" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Plasserings-sti" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "Lagervare-ID" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "Statuskode" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "Leverandørdel-ID" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "Leverandør-ID" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "Leverandørnavn" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "Kunde-ID" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Installert i" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "Produksjons-ID" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "Salgsordre-ID" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "Innkjøpsordre-ID" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "Gjennomgang kreves" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "Slett når oppbrukt" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "Utløpsdato" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "Ekstern plassering" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "Del-tre" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "Utløpsdato før" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "Utløpsdato etter" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "Foreldet" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "Antall kreves" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "Gyldig del må oppgis" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "Oppgitt leverandørdel eksisterer ikke" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Leverandørdelen har en pakkestørrelse definert, men flagget \"use_pack_size\" er ikke satt" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Serienumre kan ikke angis for en ikke-sporbar del" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "Lagerplasseringstype" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "Lagerplasseringstyper" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Standard ikom for alle plasseringer som ikke har satt et ikon (valgfritt)" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Lagerplassering" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Lagerplasseringer" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Eier" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Velg eier" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Lagervarer kan ikke knyttes direkte mot en strukturell lagerplassering, men kan knyttes mot underplasseringer." -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Ekstern" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "Dette er en ekstern lagerplassering" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Plasseringstype" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "Lagerplasseringstype for denne plasseringen" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "De kan ikke gjøre denne plasseringen strukturell, da noen lagervarer allerede er plassert i den!" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "Lagervarer kan ikke plasseres i strukturelle plasseringer!" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "Lagervare kan ikke opprettes for virtuelle deler" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Deltype ('{self.supplier_part.part}') må være {self.part}" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "Antall må være 1 for produkt med et serienummer" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Serienummeret kan ikke angis hvis antall er større enn 1" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "Elementet kan ikke tilhøre seg selv" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "Elementet må ha en produksjonsrefereanse om is_building=True" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "Produksjonsreferanse peker ikke til samme del-objekt" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Overordnet lagervare" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "Basisdel" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "Velg en tilsvarende leverandørdel for denne lagervaren" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "Hvor er denne lagervaren plassert?" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "Inpakningen denne lagervaren er lagret i" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "Er denne artikkelen montert i en annen artikkel?" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "Serienummer for denne artikkelen" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "Batchkode for denne lagervaren" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "Lagerantall" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "Kildeproduksjon" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "Produksjon for denne lagervaren" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Brukt av" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "Produksjonsordren som brukte denne lagervaren" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "Kildeinnkjøpsordre" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "Innkjøpsordre for denne lagervaren" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "Tildelt Salgsordre" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Utløpsdato for lagervare. Lagerbeholdning vil bli ansett som utløpt etter denne datoen" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "Slett når oppbrukt" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "Slett lagervaren når beholdningen er oppbrukt" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "Innkjøpspris per enhet på kjøpstidspunktet" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "Konvertert til del" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "Delen er ikke angitt som sporbar" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "Antall må være heltall" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({self.quantity})" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "Serienumre må være en liste over tall" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "Antallet stemmer ikke overens med serienumrene" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Seriernummer eksisterer allerede" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "Lagervare har blitt tildelt en salgsordre" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "Lagervare er montert i en annen artikkel" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "Lagervare inneholder andre artikler" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "Lagervare har blitt tildelt til en kunde" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "Lagervare er for tiden i produksjon" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "Serialisert lagerbeholdning kan ikke slås sammen" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "Duplisert lagervare" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "Lagervarer må referere til samme del" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "Lagervarer må referere til samme leverandørdel" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "Lagerstatuskoder må være like" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "Oppføringsnotater" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "Verdi må angis for denne testen" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "Vedlegg må lastes opp for denne testen" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "Testnavn" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "Testresultat" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "Testens verdi" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "Vedlegg til testresultat" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "Testnotater" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "Serienummeret er for høyt" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Bruk pakningsstørrelse når du legger til: antall definert er antall pakker" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "Innkjøpspris for denne lagervaren, per enhet eller forpakning" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "Angi antall lagervarer som skal serialiseres" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({q})" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "Angi serienummer for nye artikler" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "Til Lagerplassering" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "Valgfritt notatfelt" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "Serienummer kan ikke tilordnes denne delen" @@ -8624,116 +8592,116 @@ msgstr "Antall å installere" msgid "Enter the quantity of items to install" msgstr "Angi antallet elementer som skal installeres" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "Legg til transaksjonsnotat (valgfritt)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "Antall å installere må være minst 1" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "Lagervaren er utilgjengelig" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "Valgt del er ikke i stykklisten" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "Antall å installere må ikke overskride tilgjengelig antall" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "Lagerplassering for den avinstallerte artikkelen" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "Velg del å konvertere lagervare til" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "Valgt del er ikke et gyldig alternativ for konvertering" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Kan ikke konvertere lagerprodukt med tildelt leverandørdel" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "Lagerplassering for returnert artikkel" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "Velg lagervarer for å endre status" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "Ingen lagervarer valgt" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "Delen må være salgbar" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "Artikkelen er tildelt en salgsordre" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "Artikkelen er tildelt en produksjonsordre" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "Kunde å tilordne lagervarer" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "Valgt firma er ikke en kunde" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "Lagervare-tildelignsnotater" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "En liste av lagervarer må oppgis" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "Notater om lagersammenslåing" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "Tillat forskjellige leverandører" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "Tillat lagervarer med forskjellige leverandørdeler å slås sammen" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "Tillat forskjellig status" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "Tillat lagervarer med forskjellige statuskoder å slås sammen" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "Minst to lagervarer må oppgis" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "Lagervare primærnøkkel verdi" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "Lagervare statuskode" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "Lager transaksjonsnotater" @@ -8954,7 +8922,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Denne lagervaren utløp %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "Utløpt" @@ -9591,7 +9559,7 @@ msgstr "Vurder" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Slett" @@ -12760,7 +12728,7 @@ msgstr "Ta" msgid "Add Stock" msgstr "Legg til lagerbeholdning" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "Legg til" @@ -13399,7 +13367,7 @@ msgstr "Vis varsler" msgid "New Notifications" msgstr "Nye varslinger" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "Administrator" @@ -13489,11 +13457,9 @@ msgstr "Valgt SSO-leverandør er ugyldig, eller den er ikke riktig konfigurert" #: templates/socialaccount/signup.html:10 #, python-format -msgid "" -"You are about to use your %(provider_name)s account to login to\n" +msgid "You are about to use your %(provider_name)s account to login to\n" "%(site_name)s.
As a final step, please complete the following form:" -msgstr "" -"Du er i ferd med å bruke din %(provider_name)s konto for å logge inn på\n" +msgstr "Du er i ferd med å bruke din %(provider_name)s konto for å logge inn på\n" "%(site_name)s.
Som et siste steg, vennligst fullfør skjemaet:" #: templates/socialaccount/snippets/provider_list.html:26 @@ -13572,31 +13538,31 @@ msgstr "Ja" msgid "No" msgstr "Nei" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Brukere" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Velg hvilke brukere som er tilordnet denne gruppen" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "Følgende brukere er medlemmer av flere grupper" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Personlig informasjon" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Tillatelser" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "Viktige datoer" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "Token er tilbakekalt" @@ -13612,15 +13578,15 @@ msgstr "API-Token" msgid "API Tokens" msgstr "API-Tokener" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "Tokennavn" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "Egendefinert tokennavn" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "Token utløpsdato" @@ -13632,38 +13598,39 @@ msgstr "Sist sett" msgid "Last time the token was used" msgstr "Sist gang tokenet ble brukt" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "Tilbakekalt" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Tillatelse satt" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Gruppe" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Visning" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Tillatelse til å se elementer" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Tillatelse til å legge til elementer" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Endre" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Tillatelse til å endre elementer" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Tillatelse til å slette elementer" + diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index b35fb29a27..f875ccd3b1 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: 2023-12-29 15:00+0000\n" -"PO-Revision-Date: 2023-12-11 03:45\n" +"POT-Creation-Date: 2024-01-12 11:18+0000\n" +"PO-Revision-Date: 2024-01-12 11:57\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -17,56 +17,56 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "Nie znaleziono punktu końcowego API" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" -msgstr "" +msgstr "Użytkownik nie ma uprawnień do przeglądania tego modelu" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" -msgstr "" +msgstr "Nie podano wartości" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" -msgstr "" +msgstr "Nie udało się przeliczyć {original} na {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" -msgstr "" +msgstr "Podano nieprawidłową ilość" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" -msgstr "" +msgstr "Niepoprawna ilość ({exc})" #: InvenTree/exceptions.py:89 msgid "Error details can be found in the admin panel" msgstr "Szczegóły błędu można znaleźć w panelu administracyjnym" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Wprowadź dane" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 -#: templates/js/translated/purchase_order.js:2194 +#: templates/js/translated/purchase_order.js:2197 #: templates/js/translated/return_order.js:776 #: templates/js/translated/sales_order.js:1067 #: templates/js/translated/sales_order.js:1982 @@ -74,279 +74,278 @@ msgstr "Wprowadź dane" msgid "Notes" msgstr "Uwagi" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Wartość '{name}' nie pojawia się w formacie wzoru" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Podana wartość nie pasuje do wymaganego wzoru: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Wprowadź hasło" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Wprowadź nowe hasło" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Potwierdź hasło" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Potwierdź nowe hasło" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Stare hasło" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Adres email (ponownie)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Potwierdzenie adresu email" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Należy ponownie wpisać ten sam adres e-mail." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Podany podstawowy adres e-mail jest nieprawidłowy." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Podany e-mail domeny nie został zatwierdzony." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." -msgstr "" +msgstr "Rejestracja jest wyłączona." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Pusty ciąg numeru seryjnego" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Podwójny numer seryjny" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" -msgstr "" +msgstr "Nieprawidłowy zakres grupy: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" -msgstr "" +msgstr "Zakres grupy {group} przekracza dozwoloną ilość ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" -msgstr "" +msgstr "Nieprawidłowa kolejność grup: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Nie znaleziono numerów seryjnych" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" -msgstr "" +msgstr "Liczba unikalnych numerów seryjnych ({len(serials)}) musi odpowiadać ilości ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Usuń znaczniki HTML z tej wartości" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Błąd połączenia" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Serwer odpowiedział z nieprawidłowym kodem statusu" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Wystąpił wyjątek" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Serwer odpowiedział z nieprawidłową wartością Content-Length" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Rozmiar obrazu jest zbyt duży" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Przekroczono maksymalny rozmiar pobieranego obrazu" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Zdalny serwer zwrócił pustą odpowiedź" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Podany adres URL nie jest poprawnym plikiem obrazu" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" -msgstr "" +msgstr "[{site.name}] Zaloguj się do aplikacji" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Adres E-Mail" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" -msgstr "" +msgstr "Metadane muszą być obiektem typu dict w Python" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" -msgstr "" +msgstr "Wtyczka Metadane" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Nieprawidłowo sformatowany wzór" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Określono nieznany format klucza" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Brak wymaganego formatu klucza" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Pole odniesienia nie może być puste" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Odniesienie musi być zgodne z wymaganym wzorem" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Numer odniesienia jest zbyt duży" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Brak pliku" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Załącznik" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Wybierz plik do załączenia" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 -#: templates/js/translated/purchase_order.js:2034 -#: templates/js/translated/purchase_order.js:2198 +#: templates/js/translated/purchase_order.js:2037 +#: templates/js/translated/purchase_order.js:2201 #: templates/js/translated/return_order.js:780 #: templates/js/translated/sales_order.js:1056 #: templates/js/translated/sales_order.js:1987 msgid "Link" msgstr "Łącze" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Komentarz" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Komentarz pliku" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Użytkownik" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "data przesłania" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Nazwa pliku nie może być pusta" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Nieprawidłowy katalog załącznika" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Nazwa pliku zawiera niedozwolony znak '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Brak rozszerzenia w nazwie pliku" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Załącznik o tej nazwie już istnieje" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Błąd zmiany nazwy pliku" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Błędny wybór" msgid "Name" msgstr "Nazwa" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -388,9 +387,9 @@ msgstr "Nazwa" #: templates/js/translated/part.js:1956 templates/js/translated/part.js:2353 #: templates/js/translated/part.js:2783 templates/js/translated/part.js:2871 #: templates/js/translated/plugin.js:80 -#: templates/js/translated/purchase_order.js:1700 -#: templates/js/translated/purchase_order.js:1843 -#: templates/js/translated/purchase_order.js:2016 +#: templates/js/translated/purchase_order.js:1703 +#: templates/js/translated/purchase_order.js:1846 +#: templates/js/translated/purchase_order.js:2019 #: templates/js/translated/return_order.js:314 #: templates/js/translated/sales_order.js:802 #: templates/js/translated/sales_order.js:1812 @@ -399,63 +398,63 @@ msgstr "Nazwa" msgid "Description" msgstr "Opis" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Opis (opcjonalny)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "nadrzędny" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Ścieżka" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Dane kodu kreskowego" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Dane kodu kreskowego stron trzecich" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Hasz kodu kreskowego" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Unikalny hasz danych kodu kreskowego" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Znaleziono istniejący kod kreskowy" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Błąd serwera" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Waluta" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,286 +462,284 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format -msgid "" -"Your account has been created.\n" -"\n" +msgid "Your account has been created.\n\n" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Nazwa pliku" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Nieprawidłowa wartość" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Plik danych" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Wybierz plik danych do przesłania" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Nieobsługiwany typ pliku" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Plik jest zbyt duży" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Nie znaleziono kolumn w pliku" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Nie znaleziono wierszy danych w pliku" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Nie podano wierszy danych" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Nie podano kolumn danych" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Brakuje wymaganej kolumny: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Zduplikowana kolumna: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "Adres URL zdalnego pliku obrazu" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Czeski" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Duński" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Niemiecki" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Grecki" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Angielski" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Hiszpański (Meksyk)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Perski" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Francuski" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Węgierski" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Włoski" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japoński" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Koreański" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polski" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugalski" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugalski (Brazylijski)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Słoweński" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Tajski" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turecki" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Sprawdzenie robotnika w tle nie powiodło się" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Nie skonfigurowano backendu e-mail" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Sprawdzanie poziomu zdrowia InvenTree nie powiodło się" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "W toku" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Umieszczony" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Zakończono" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Anulowano" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Zagubiono" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Zwrócone" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Wysłane" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Wymaga uwagi" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Uszkodzone" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Zniszczone" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Odrzucone" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "Poddany kwarantannie" @@ -854,23 +851,23 @@ msgstr "Zwrócony od klienta" msgid "Production" msgstr "Produkcja" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +879,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "Nieprawidłowy kod waluty" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Wartość przedawnienia nie może być ujemna" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Przedawnienie nie może przekroczyć 100 %" @@ -894,27 +891,27 @@ msgstr "Przedawnienie nie może przekroczyć 100 %" msgid "Invalid value for overage" msgstr "Nieprawidłowa wartość przedawnienia" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Edytuj informacje użytkownika" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Ustaw hasło" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Hasła muszą być zgodne" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Podano nieprawidłowe hasło" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Informacja systemowa" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "O InvenTree" @@ -922,14 +919,14 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +940,14 @@ msgstr "Opcjonalne" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Przydzielono" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +977,7 @@ msgstr "Zlecenie Budowy" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Zlecenia budowy" @@ -996,9 +993,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1006,7 +1003,7 @@ msgstr "Odwołanie do zamówienia wykonania" #: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 #: templates/js/translated/build.js:2503 templates/js/translated/order.js:291 #: templates/js/translated/pricing.js:386 -#: templates/js/translated/purchase_order.js:2059 +#: templates/js/translated/purchase_order.js:2062 #: templates/js/translated/return_order.js:729 #: templates/js/translated/sales_order.js:1818 msgid "Reference" @@ -1026,13 +1023,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1040,7 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1061,8 +1058,8 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: templates/js/translated/part.js:2322 templates/js/translated/pricing.js:369 #: templates/js/translated/purchase_order.js:760 #: templates/js/translated/purchase_order.js:1300 -#: templates/js/translated/purchase_order.js:1842 -#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/purchase_order.js:1845 +#: templates/js/translated/purchase_order.js:2004 #: templates/js/translated/return_order.js:539 #: templates/js/translated/return_order.js:710 #: templates/js/translated/sales_order.js:300 @@ -1130,8 +1127,8 @@ msgstr "Status budowania" msgid "Build status code" msgstr "Kod statusu budowania" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Kod partii" @@ -1140,7 +1137,7 @@ msgstr "Kod partii" msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1152,7 @@ msgstr "Docelowy termin zakończenia" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Docelowa data zakończenia kompilacji. Po tej dacie kompilacja będzie zaległa." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Data zakończenia" @@ -1173,15 +1170,15 @@ msgid "User who issued this build order" msgstr "Użytkownik, który wydał to zamówienie" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 #: templates/js/translated/build.js:2207 -#: templates/js/translated/purchase_order.js:1757 +#: templates/js/translated/purchase_order.js:1760 #: templates/js/translated/return_order.js:359 #: templates/js/translated/table_filters.js:527 msgid "Responsible" @@ -1197,7 +1194,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,10 +1208,10 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 -#: templates/js/translated/purchase_order.js:1704 +#: templates/js/translated/purchase_order.js:1707 #: templates/js/translated/return_order.js:318 #: templates/js/translated/sales_order.js:806 #: templates/js/translated/table_filters.js:48 @@ -1248,9 +1245,9 @@ msgid "Build output does not match Build Order" msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" @@ -1264,10 +1261,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1274,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1295,8 +1292,8 @@ msgstr "" #: templates/js/translated/pricing.js:522 #: templates/js/translated/pricing.js:616 #: templates/js/translated/purchase_order.js:763 -#: templates/js/translated/purchase_order.js:1846 -#: templates/js/translated/purchase_order.js:2065 +#: templates/js/translated/purchase_order.js:1849 +#: templates/js/translated/purchase_order.js:2068 #: templates/js/translated/sales_order.js:317 #: templates/js/translated/sales_order.js:1199 #: templates/js/translated/sales_order.js:1518 @@ -1322,11 +1319,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" @@ -1338,9 +1335,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1401,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Numer seryjny" @@ -1422,7 +1419,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:940 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1427,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,13 +1468,13 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 -#: templates/js/translated/purchase_order.js:1716 +#: templates/js/translated/purchase_order.js:1719 #: templates/js/translated/return_order.js:331 #: templates/js/translated/sales_order.js:819 #: templates/js/translated/stock.js:2146 templates/js/translated/stock.js:2966 @@ -1545,7 +1542,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Akceptuj niekompletne" @@ -1581,11 +1578,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "Towar musi znajdować się w magazynie" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1595,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,14 +1760,14 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 #: templates/js/translated/build.js:2227 templates/js/translated/part.js:1829 -#: templates/js/translated/purchase_order.js:1733 -#: templates/js/translated/purchase_order.js:2141 +#: templates/js/translated/purchase_order.js:1736 +#: templates/js/translated/purchase_order.js:2144 #: templates/js/translated/return_order.js:347 #: templates/js/translated/return_order.js:751 #: templates/js/translated/sales_order.js:835 @@ -1801,8 +1798,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,8 +1849,8 @@ msgstr "Źródło magazynu" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 -#: templates/js/translated/purchase_order.js:2183 +#: build/templates/build/detail.html:49 order/models.py:1405 +#: templates/js/translated/purchase_order.js:2186 msgid "Destination" msgstr "Przeznaczenie" @@ -1865,7 +1862,7 @@ msgstr "Nie określono lokalizacji docelowej" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2018,19 @@ msgstr "Błąd odczytu pliku (niepoprawny wymiar)" msgid "Error reading file (data could be corrupted)" msgstr "Błąd odczytu pliku (dane mogą być uszkodzone)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Plik" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Wybierz plik do przesłania" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} Plik" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "Wybierz plik {name} do przesłania" @@ -2046,1041 +2043,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "Ustawienia wartości" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "Wartość musi być wartością binarną" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "Wartość musi być liczbą całkowitą" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "Ciąg musi być unikatowy" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Brak grupy" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Wymagane ponowne uruchomienie" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "Zmieniono ustawienie, które wymaga restartu serwera" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Użyj nazwy instancji" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Nazwa firmy" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Wewnętrzna nazwa firmy" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "Bazowy URL" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "Bazowy adres URL dla instancji serwera" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Domyślna waluta" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "dni" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Pobierz z adresu URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Obsługa kodu kreskowego" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "Wyrażenie regularne IPN" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Zezwól na powtarzający się IPN" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Zezwól na edycję IPN" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Skopiuj BOM komponentu" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Szablon" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Złożenie" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Komponent" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Możliwość zakupu" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Możliwość sprzedaży" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Możliwość śledzenia" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Wirtualny" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Części są domyślnie wirtualne" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Ceny wewnętrzne" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Włącz drukowanie etykiet" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Włącz drukowanie etykiet z interfejsu WWW" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "DPI etykiety" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Włącz raporty" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Tryb Debugowania" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Domyślna wielkość strony dla raportów PDF" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Włącz generowanie raportów testów" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Włącz opcję zapomnianego hasła" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Włącz funkcję zapomnianego hasła na stronach logowania" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Włącz rejestrację" -#: common/models.py:1735 +#: common/models.py:1754 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:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "Włącz SSO" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "Włącz SSO na stronach logowania" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Adres e-mail jest wymagany" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "Autouzupełnianie użytkowników SSO" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "E-mail dwa razy" -#: common/models.py:1770 +#: common/models.py:1788 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:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Hasło dwukrotnie" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Grupuj przy rejestracji" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "Wymuś MFA" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Sprawdź wtyczki przy starcie" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "Włącz integrację URL" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "Włącz wtyczki, aby dodać ścieżki URL" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "Włącz integrację z aplikacją" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "Włącz wtyczki, aby dodać aplikacje" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Pokaż obserwowane części" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Pokaż obserwowane części na stronie głównej" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Pokaż obserwowane kategorie" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Pokaż obserwowane kategorie części na stronie głównej" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Pokaż najnowsze części" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Pokaż najnowsze części na stronie głównej" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Pokaż niski stan magazynowy" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Pokaż elementy o niskim stanie na stronie głównej" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Pokaż wymagany stan zapasów" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3089,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Szukaj części" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Ukryj nieaktywne części" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Stały pasek nawigacyjny" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Format daty" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Preferowany format wyświetlania dat" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planowanie komponentów" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Cena" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "Punkt końcowy" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Aktywny" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Sekret" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "Współdzielony sekret dla HMAC" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "Id wiadomości" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "Unikalny identyfikator dla tej wiadomości" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "Host, od którego otrzymano tę wiadomość" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Nagłówek" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "Nagłówek tej wiadomości" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Zawartość" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3542,76 @@ msgstr "" msgid "Image" msgstr "Obraz" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Wyślij plik" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3619,19 @@ msgstr "Wyślij plik" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "Pasujące elementy" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3642,186 @@ msgstr "" msgid "Previous Step" msgstr "Poprzedni krok" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Opis firmy" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "Opis firmy" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Strona WWW" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Witryna internetowa firmy" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Numer telefonu" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Numer telefonu kontaktowego" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Kontaktowy adres e-mail" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Kontakt" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Punkt kontaktowy" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "jest klientem" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Czy sprzedajesz produkty tej firmie?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "jest dostawcą" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Czy kupujesz przedmioty od tej firmy?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "jest producentem" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Czy to przedsiębiorstwo produkuje części?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:723 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Firma" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Część bazowa" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Wybierz część" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,84 +3831,84 @@ msgstr "Wybierz część" msgid "Manufacturer" msgstr "Producent" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Wybierz producenta" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 #: templates/js/translated/company.js:1620 templates/js/translated/part.js:1800 -#: templates/js/translated/purchase_order.js:1845 -#: templates/js/translated/purchase_order.js:2047 +#: templates/js/translated/purchase_order.js:1848 +#: templates/js/translated/purchase_order.js:2050 msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Numer producenta komponentu" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Komponent producenta" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Wartość" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Jednostki" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Jednostki parametru" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3919,33 +3916,33 @@ msgstr "" #: templates/js/translated/company.js:510 #: templates/js/translated/company.js:1574 templates/js/translated/part.js:1768 #: templates/js/translated/pricing.js:498 -#: templates/js/translated/purchase_order.js:1683 +#: templates/js/translated/purchase_order.js:1686 #: templates/js/translated/table_filters.js:796 msgid "Supplier" msgstr "Dostawca" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Wybierz dostawcę" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,57 +3952,57 @@ msgstr "" msgid "Note" msgstr "Uwaga" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Opakowanie" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 #: templates/js/translated/purchase_order.js:1099 -#: templates/js/translated/purchase_order.js:2078 -#: templates/js/translated/purchase_order.js:2095 +#: templates/js/translated/purchase_order.js:2081 +#: templates/js/translated/purchase_order.js:2098 msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "wielokrotność" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4064,10 @@ msgstr "Pobierz obraz z adresu URL" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4082,7 @@ msgstr "Klient" msgid "Uses default currency" msgstr "Używa domyślnej waluty" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4162,7 @@ msgstr "Zapasy dostawcy" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Zamówienia zakupu" @@ -4188,7 +4185,7 @@ msgstr "Nowe zamówienie zakupu" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4210,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4278,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Dostawcy" @@ -4330,7 +4327,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,12 +4376,12 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 -#: templates/js/translated/purchase_order.js:1844 -#: templates/js/translated/purchase_order.js:2022 +#: templates/js/translated/purchase_order.js:1847 +#: templates/js/translated/purchase_order.js:2025 msgid "SKU" msgstr "" @@ -4429,16 +4426,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Towary" @@ -4471,11 +4468,11 @@ msgstr "Firmy" msgid "New Company" msgstr "Nowa firma" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Nazwa etykiety" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Opis etykiety" @@ -4487,7 +4484,7 @@ msgstr "Etykieta" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Aktywne" @@ -4511,7 +4508,7 @@ msgstr "Wysokość [mm]" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Wzór nazwy pliku" @@ -4519,14 +4516,14 @@ msgstr "Wzór nazwy pliku" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Filtry" @@ -4543,20 +4540,20 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 -#: templates/js/translated/purchase_order.js:2119 +#: templates/js/translated/purchase_order.js:2122 #: templates/js/translated/sales_order.js:1847 msgid "Total Price" msgstr "Cena całkowita" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4565,12 +4562,12 @@ msgstr "" #: templates/js/translated/part.js:1745 templates/js/translated/pricing.js:804 #: templates/js/translated/purchase_order.js:168 #: templates/js/translated/purchase_order.js:762 -#: templates/js/translated/purchase_order.js:1667 +#: templates/js/translated/purchase_order.js:1670 #: templates/js/translated/stock.js:2230 templates/js/translated/stock.js:2878 msgid "Purchase Order" msgstr "Zlecenie zakupu" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,456 +4576,456 @@ msgstr "Zlecenie zakupu" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Link do zewnętrznej witryny" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Utworzony przez" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Odniesienie zamówienia" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Status zamówienia zakupu" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 -#: templates/js/translated/purchase_order.js:1696 +#: order/models.py:457 order/templates/order/order_base.html:148 +#: templates/js/translated/purchase_order.js:1699 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "odebrane przez" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Data wydania" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Data wystawienia zamówienia" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "Wartość musi być liczbą dodatnią" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Data wysyłki" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "wysłane przez" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Ilość elementów" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Zamówienie" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 -#: templates/js/translated/purchase_order.js:2163 +#: templates/js/translated/purchase_order.js:2166 #: templates/js/translated/return_order.js:764 #: templates/js/translated/table_filters.js:120 #: templates/js/translated/table_filters.js:598 msgid "Received" msgstr "Odebrane" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Cena zakupu" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Cena zakupu jednostkowego" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "Gdzie kupujący chce przechowywać ten przedmiot?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Cena sprzedaży" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Jednostkowa cena sprzedaży" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Wysłana ilość" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Data wysyłki" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Sprawdzone przez" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Użytkownik, który sprawdził tę wysyłkę" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Przesyłka" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Numer przesyłki" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Numer śledzenia" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Informacje o śledzeniu przesyłki" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "Przesyłka została już wysłana" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Linia" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Komponent" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "Zamówienie nie może zostać anulowane" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Kod kreskowy" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5037,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5089,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5406,7 +5403,7 @@ msgstr "" #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:1072 -#: templates/js/translated/purchase_order.js:1746 +#: templates/js/translated/purchase_order.js:1749 #: templates/js/translated/return_order.js:381 #: templates/js/translated/sales_order.js:855 msgid "Total Cost" @@ -5478,918 +5475,918 @@ msgstr "Nowa wysyłka" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Nie znaleziono ceny" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "ID komponentu" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Nazwa komponentu" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Wersja" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Słowa kluczowe" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "ID kategorii" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Wariant" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "Na stanie" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "W Zamówieniu" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Użyte w" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Ścieżka kategorii" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Części" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "IPN komponentu" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:523 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:541 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:557 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:641 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:786 msgid "Valid" msgstr "Ważny" -#: part/api.py:776 +#: part/api.py:787 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:793 msgid "This option must be selected" msgstr "Ta opcja musi być zaznaczona" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Domyślna lokalizacja" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Dostępna ilość" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategoria komponentu" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Kategorie części" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Domyślna lokalizacja dla komponentów w tej kategorii" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Domyślne słowa kluczowe" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "Nieprawidłowy wybór dla części nadrzędnej" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Nazwa komponentu" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "Czy szablon" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "Czy ta część stanowi szablon części?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "Czy ta część jest wariantem innej części?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:695 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategoria" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "Domyślne wygasanie" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "Czy ten komponent może być zbudowany z innych komponentów?" -#: part/models.py:940 +#: part/models.py:1006 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:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "Czy ta część wymaga śledzenia każdego towaru z osobna?" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:966 +#: part/models.py:1034 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:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "Tworzenie użytkownika" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 #: templates/InvenTree/settings/settings_staff_js.html:540 #: templates/js/translated/part.js:1085 templates/js/translated/pricing.js:826 #: templates/js/translated/pricing.js:950 -#: templates/js/translated/purchase_order.js:1725 +#: templates/js/translated/purchase_order.js:1728 #: templates/js/translated/stock.js:2792 msgid "Date" msgstr "Data" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "Testowy opis" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "Wprowadź opis do tego testu" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Wymagane" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Wymaga wartości" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Wymaga załącznika" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "Dane" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "Wartość parametru" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "Unikalny wartość ID komponentu" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "Wartość IPN części" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "Poziom" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:707 msgid "BOM Item" msgstr "Element BOM" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "Notatki pozycji BOM" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Zatwierdzone" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Zezwalaj na warianty" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "Część zastępcza" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "Część 1" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "Część 2" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Waluta zakupu tego towaru" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6398,299 @@ msgstr "" msgid "Copy Image" msgstr "Kopiuj obraz" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Kopiuj parametry" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Duplikuj część" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "Usuń istniejące dane" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "Pomiń nieprawidłowe wiersze" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "Wyczyść istniejący BOM" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "Nie podano ilości" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Nieprawidłowa ilość" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 -#: templates/js/translated/purchase_order.js:2078 +#: templates/js/translated/purchase_order.js:2081 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6705,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6821,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7231,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7360,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Nieznana baza danych" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,117 +7372,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "Wybierz obrazek części" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "Zaktualizowano zdjęcie części" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Nie znaleziono obrazka części" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "Cennik części" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Nie określono działania" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Nie znaleziono pasującej akcji" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Nie znaleziono wyników dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Znaleziono wyniki dla danych kodu kreskowego" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 -#, fuzzy -#| msgid "No matching shipments found" +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" -msgstr "Nie odnaleziono pasujących przesyłek" +msgstr "" -#: plugin/base/barcodes/api.py:503 -#, fuzzy -#| msgid "No matching images found" +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" -msgstr "Nie znaleziono pasujących obrazów" +msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 -#, fuzzy -#| msgid "Stock item no longer exists" +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" -msgstr "Element magazynowy już nie istnieje" +msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 -#, fuzzy -#| msgid "Allocated to Sales Orders" +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" -msgstr "Przypisane do zamówień sprzedaży" +msgstr "" -#: plugin/base/barcodes/api.py:603 -#, fuzzy -#| msgid "No user information" +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" -msgstr "Brak informacji o użytkowniku" +msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7500,11 +7486,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7517,12 +7503,10 @@ msgid "Scanned barcode data" msgstr "" #: plugin/base/barcodes/serializers.py:81 -#, fuzzy -#| msgid "Purchase order no longer exists" msgid "Purchase Order to allocate items against" -msgstr "Zamówienie zakupu już nie istnieje" +msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7530,7 +7514,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7538,21 +7522,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 -#, fuzzy -#| msgid "No sales orders found" +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" -msgstr "Nie znaleziono zamówień sprzedaży" +msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7560,19 +7542,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 -#, fuzzy -#| msgid "Shipment has already been sent" +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" -msgstr "Przesyłka została już wysłana" +msgstr "" -#: plugin/base/barcodes/serializers.py:173 -#, fuzzy -#| msgid "Quantity to Receive" +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" -msgstr "Ilość do otrzymania" +msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7585,8 +7563,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7594,49 +7572,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7676,7 +7654,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7692,7 +7670,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7752,113 +7730,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "Konfiguracja wtyczki" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "Konfiguracja wtyczek" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "Klucz" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "Klucz wtyczki" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "Nazwa wtyczki" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "Czy wtyczka jest aktywna" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "Zainstalowane" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Wtyczka" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "Włącz PO" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "Włącz funkcjonalność PO w interfejsie InvenTree" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "Klucz API" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "Klucz wymagany do uzyskania dostępu do zewnętrznego API" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Liczbowy" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "Ustawienie numeryczne" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "Ustawienie jednokrotnego wyboru" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "Ustawienie wielokrotnego wyboru" @@ -7870,35 +7848,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "Źródłowy adres URL" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Źródło pakietu - może to być niestandardowy rejestr lub ścieżka VCS" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "Nazwa pakietu" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Nazwa pakietu wtyczki - może również zawierać wskaźnik wersji" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "Potwierdź instalację wtyczki" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Spowoduje to zainstalowanie tej wtyczki w bieżącej instancji. Instancja przejdzie do trybu konserwacji." -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "Instalacja nie została potwierdzona" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7910,40 +7888,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7963,103 +7941,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Nazwa szablonu" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "Filtr części" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "Wycinek" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8080,7 +8058,7 @@ msgstr "" #: templates/js/translated/order.js:316 templates/js/translated/pricing.js:527 #: templates/js/translated/pricing.js:596 #: templates/js/translated/pricing.js:834 -#: templates/js/translated/purchase_order.js:2109 +#: templates/js/translated/purchase_order.js:2112 #: templates/js/translated/sales_order.js:1837 msgid "Unit Price" msgstr "Cena jednostkowa" @@ -8093,14 +8071,14 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:72 #: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:2011 +#: templates/js/translated/purchase_order.js:2014 #: templates/js/translated/sales_order.js:1806 msgid "Total" msgstr "Razem" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8126,12 +8104,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "Wynik" @@ -8157,7 +8135,7 @@ msgid "Installed Items" msgstr "Zainstalowane elementy" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Numer seryjny" @@ -8166,438 +8144,438 @@ msgstr "Numer seryjny" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "ID lokalizacji" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Ścieżka lokalizacji" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "ID części dostawcy" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Zainstalowane w" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "Data ważności" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:540 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:715 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:743 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:747 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:750 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:836 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:842 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:873 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:883 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:914 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Lokacje stanu magazynowego" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Właściciel" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Wybierz właściciela" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Nadrzędny towar" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "Wybierz pasującą część dostawcy dla tego towaru" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "Usuń po wyczerpaniu" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Numer seryjny już istnieje" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "Nazwa testu" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8613,116 +8591,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "Część musi być dostępna do sprzedaży" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8943,7 +8921,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "Termin minął" @@ -9580,7 +9558,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Usuń" @@ -11606,7 +11584,7 @@ msgid "Delete Line" msgstr "" #: templates/js/translated/order.js:281 -#: templates/js/translated/purchase_order.js:1984 +#: templates/js/translated/purchase_order.js:1987 msgid "No line items found" msgstr "" @@ -11844,19 +11822,19 @@ msgid "Delete Part Parameter Template" msgstr "" #: templates/js/translated/part.js:1716 -#: templates/js/translated/purchase_order.js:1648 +#: templates/js/translated/purchase_order.js:1651 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1859 -#: templates/js/translated/purchase_order.js:2147 +#: templates/js/translated/purchase_order.js:2150 #: templates/js/translated/return_order.js:756 #: templates/js/translated/sales_order.js:1875 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1904 -#: templates/js/translated/purchase_order.js:2214 +#: templates/js/translated/purchase_order.js:2217 msgid "Receive line item" msgstr "" @@ -12236,58 +12214,58 @@ msgstr "" msgid "Invalid barcode data" msgstr "" -#: templates/js/translated/purchase_order.js:1675 +#: templates/js/translated/purchase_order.js:1678 #: templates/js/translated/return_order.js:286 #: templates/js/translated/sales_order.js:774 #: templates/js/translated/sales_order.js:998 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1741 +#: templates/js/translated/purchase_order.js:1744 #: templates/js/translated/return_order.js:354 #: templates/js/translated/sales_order.js:851 #: templates/js/translated/sales_order.js:1011 msgid "Items" msgstr "Przedmioty" -#: templates/js/translated/purchase_order.js:1837 +#: templates/js/translated/purchase_order.js:1840 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1855 +#: templates/js/translated/purchase_order.js:1858 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1910 +#: templates/js/translated/purchase_order.js:1913 #: templates/js/translated/sales_order.js:2070 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1925 +#: templates/js/translated/purchase_order.js:1928 #: templates/js/translated/return_order.js:476 #: templates/js/translated/return_order.js:669 #: templates/js/translated/sales_order.js:2083 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1936 +#: templates/js/translated/purchase_order.js:1939 #: templates/js/translated/return_order.js:682 #: templates/js/translated/sales_order.js:2094 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2218 +#: templates/js/translated/purchase_order.js:2221 #: templates/js/translated/sales_order.js:2024 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2219 +#: templates/js/translated/purchase_order.js:2222 #: templates/js/translated/return_order.js:801 #: templates/js/translated/sales_order.js:2025 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2220 +#: templates/js/translated/purchase_order.js:2223 #: templates/js/translated/return_order.js:805 #: templates/js/translated/sales_order.js:2031 msgid "Delete line item" @@ -12749,7 +12727,7 @@ msgstr "Weź" msgid "Add Stock" msgstr "Dodaj stan" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "Dodaj" @@ -13388,7 +13366,7 @@ msgstr "Pokaż powiadomienia" msgid "New Notifications" msgstr "Nowe powiadomienia" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13478,8 +13456,7 @@ msgstr "" #: templates/socialaccount/signup.html:10 #, python-format -msgid "" -"You are about to use your %(provider_name)s account to login to\n" +msgid "You are about to use your %(provider_name)s account to login to\n" "%(site_name)s.
As a final step, please complete the following form:" msgstr "" @@ -13559,31 +13536,31 @@ msgstr "Tak" msgid "No" msgstr "Nie" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Użytkownicy" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Informacje osobiste" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Uprawnienia" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "Ważne daty" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13599,15 +13576,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13619,38 +13596,39 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Uprawnienia nadane" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Grupa" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Widok" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Uprawnienie do wyświetlania przedmiotów" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Uprawnienie do dodawania przedmiotów" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Zmień" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Uprawnienie do edycji przedmiotów" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Uprawnienie do usuwania przedmiotów" + diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index f216fc15d8..b7ca0b4924 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:46\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API endpoint não encontrado" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Usuário não tem permissão para ver este modelo" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Nenhum valor fornecido" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Não foi possível converter {original} para {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Quantidade fornecida inválida" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Quantidade fornecida inválida ({exc})" @@ -47,22 +47,22 @@ msgstr "Quantidade fornecida inválida ({exc})" msgid "Error details can be found in the admin panel" msgstr "Detalhes do erro podem ser encontrados no painel de administrador" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Insira uma Data" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Insira uma Data" msgid "Notes" msgstr "Anotações" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Valor '{name}' não está no formato correto" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "O valor fornecido não corresponde ao padrão exigido: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Digite a senha" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Insira uma nova senha" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Confirmar senha" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Confirmar nova senha" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Senha atual" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "E-mail (novamente)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Confirmação do endereço de email" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Você deve digitar o mesmo e-mail todas as vezes." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "O endereço primário de e-mail não é válido." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "O domínio de e-mail providenciado não foi aprovado." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Cadastro está desativado." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Quantidade fornecida inválida" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Número serial em branco" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Número de série duplicado" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Nenhum número de série foi encontrado" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Remova as \"tags\" HTML deste valor" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Erro de conexão" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "O servidor respondeu com código estado inválido" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Ocorreu uma exceção" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "O servidor respondeu com valor inválido do tamanho de conteúdo" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Tamanho da imagem muito grande" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "O download da imagem excedeu o tamanho máximo" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "O servidor remoto retornou resposta vazia" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "A URL fornecida não é um arquivo de imagem válido" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Acesse no aplicativo" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Email" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Metadados deve ser um objeto dict python" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Metadados da Extensão" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "Campo de metadados JSON, para uso por extensões externas" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Padrão formatado incorretamente" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Chave de formato desconhecida especificada" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Chave de formato obrigatória ausente" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "O campo de referência não pode ficar vazio" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "A referência deve corresponder ao padrão exigido" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "O número de referência é muito grande" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Arquivo ausente" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Link externo não encontrado" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Anexo" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Selecione arquivo para anexar" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Selecione arquivo para anexar" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Link para URL externa" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Comentario" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Comentario sobre arquivo" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Usuario" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "data de upload" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Nome do arquivo nao pode estar vazio" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Diretorio para anexo invalido" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Arquivo contem characteres ilegais '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Arquivo sem extensao" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Anexo ja existe" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Erro renomeando o arquivo" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Nomes duplicados não podem existir sob o mesmo parental" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Escolha inválida" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Escolha inválida" msgid "Name" msgstr "Nome" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Nome" msgid "Description" msgstr "Descrição" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Descrição (opcional)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "parent" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Caminho" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Notas Markdown (opcional)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Dados de código de barras" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Dados de código de barras de terceiros" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Hash de código de barras" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Hash exclusivo de dados de código de barras" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Código de barras existente encontrado" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Erro de servidor" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Log de erro salvo pelo servidor." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Preicsa ser um numero valido" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Moeda" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Selecione a Moeda nas opções disponíveis" @@ -463,16 +462,16 @@ msgstr "Selecione a Moeda nas opções disponíveis" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Nome do arquivo" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Arquivo de dados" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Selecione um arquivo de dados para enviar" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Tipo de arquivo não suportado" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "O arquivo é muito grande" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Nenhuma coluna encontrada no arquivo" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Nenhuma linha de dados encontrada no arquivo" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Nenhuma linha de dados fornecida" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Nenhuma coluna de dados fornecida" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta a coluna obrigatória: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Coluna duplicada: \"{col}\"" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL do arquivo de imagem remoto" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Baixar imagens de URL remota não está habilitado" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Tcheco" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Dinamarquês" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Alemão" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Grego" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Inglês" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Espanhol" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Espanhol (Mexicano)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Persa" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Finlandês" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Francês" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebraico" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Hindu" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Húngaro" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japonês" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Holandês" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norueguês" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polonês" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Português" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Português (Brasileiro)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Esloveno" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Sueco" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Tailandês" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Chinês (Simplificado)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Chinês (Tradicional)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Falha em verificar o histórico do trabalhador" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Serviço de fundo do e-mail não foi configurado" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Verificação de saúde do sistema InvenTree falhou" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Pendente" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Colocado" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Completado" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Cancelado" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Perdido" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Retornado" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Em Progresso" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Enviado" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Necessita de atenção" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Danificado" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Destruído" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Rejeitado" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "Em quarentena" @@ -854,23 +853,23 @@ msgstr "Devolvido pelo cliente" msgid "Production" msgstr "Produção" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Devolução" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Consertar" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Substituir" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Reembolsar" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Recusar" @@ -882,11 +881,11 @@ msgstr "Unidade física inválida" msgid "Not a valid currency code" msgstr "Não é um código de moeda válido" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Valor excedente não deve ser negativo" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Excedente não deve exceder 100%" @@ -894,27 +893,27 @@ msgstr "Excedente não deve exceder 100%" msgid "Invalid value for overage" msgstr "Valor de excedente inválido" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Editar informações do usuário" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Definir senha" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Os campos de senha devem coincidir" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Senha incorreta fornecida" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Informação do Sistema" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Sobre o InvenTree" @@ -922,14 +921,14 @@ msgstr "Sobre o InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Produção deve ser cancelada antes de ser deletada" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Consumível" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "Opcional" msgid "Tracked" msgstr "Monitorado" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Alocado" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "Ondem de Produção" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Ordens de Produções" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Referência do pedido de produção" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Pedido de produção para qual este serviço está alocado" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "Pedido de produção para qual este serviço está alocado" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "Progresso da produção" msgid "Build status code" msgstr "Código de situação da produção" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Código de Lote" @@ -1140,7 +1139,7 @@ msgstr "Código de Lote" msgid "Batch code for this build output" msgstr "Código do lote para esta saída de produção" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "Data alvo final" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Data alvo para finalização de produção. Estará atrasado a partir deste dia." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Data de conclusão" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Usuário que emitiu este pedido de produção" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "Usuário ou grupo responsável para este pedido de produção" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "Prioridade de Produção" msgid "Priority of this build order" msgstr "Prioridade deste pedido de produção" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "Saída da produção não corresponde ao Pedido de Produção" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Quantidade deve ser maior que zero" @@ -1264,10 +1263,10 @@ msgstr "Objeto de produção" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "Objeto de produção" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "Item de produção deve especificar a saída, pois peças mestres estão msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "O item do estoque está sobre-alocado" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Quantidade alocada deve ser maior que zero" @@ -1338,9 +1337,9 @@ msgstr "Quantidade deve ser 1 para estoque serializado" msgid "Selected stock item does not match BOM line" msgstr "Item estoque selecionado não coincide com linha da LDM" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "Quantidade inteira necessária para peças rastreáveis" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Quantidade inteira necessária, pois a lista de materiais contém peças rastreáveis" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Números de Série" @@ -1422,7 +1421,7 @@ msgstr "Alocar Números de Série Automaticamente" msgid "Automatically allocate required items with matching serial numbers" msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "Os seguintes números de série já existem ou são inválidos" @@ -1430,10 +1429,10 @@ msgstr "Os seguintes números de série já existem ou são inválidos" msgid "A list of build outputs must be provided" msgstr "Uma lista de saídas de produção deve ser fornecida" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "Local para saídas de produção concluídas" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "Aceitar que os itens de estoque não foram totalmente alocados para esta msgid "Required stock has not been fully allocated" msgstr "Estoque obrigatório não foi totalmente alocado" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Aceitar Incompleto" @@ -1581,11 +1580,11 @@ msgstr "Item da linha de produção" msgid "bom_item.part must point to the same part as the build order" msgstr "bin_item.part deve indicar a mesma peça do pedido de produção" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "Item deve estar em estoque" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Quantidade disponível ({q}) excedida" @@ -1598,7 +1597,7 @@ msgstr "Saída de produção deve ser definida para alocação de peças rastrea msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Saída de produção deve ser definida para alocação de peças não rastreadas" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Alocação do Item precisa ser fornecida" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Estoque não foi totalmente alocado para este Pedido de Produção" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "Saídas Concluídas" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "Origem do estoque" msgid "Stock can be taken from any available location." msgstr "O estoque pode ser tirado de qualquer local disponível." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Destino" @@ -1865,7 +1864,7 @@ msgstr "Loca de destino não especificado" msgid "Allocated Parts" msgstr "Peças alocadas" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "Erro ao ler o arquivo (dimensão incorreta)" msgid "Error reading file (data could be corrupted)" msgstr "Erro ao ler o arquivo (dados podem estar corrompidos)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Arquivo" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Selecione um arquivo para carregar" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "Arquivo {name.title()}" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "Selecione {name} arquivo para carregar" @@ -2046,1041 +2045,1041 @@ msgstr "Atualizado" msgid "Timestamp of last update" msgstr "Tempo da última atualização" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Código único do projeto" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Descrição do projeto" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "Valor da Configuração" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "Valor escolhido não é uma opção válida" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "Valor deve ser um valor booleano" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "Valor deve ser um número inteiro" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "A frase senha deve ser diferenciada" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Nenhum grupo" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Um domínio vazio não é permitido." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Nome de domínio inválido: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Reinicialização necessária" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "Uma configuração que requer uma reinicialização do servidor foi alterada" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "Nome da Instância do Servidor" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "Descritor de frases para a instância do servidor" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Usar nome da instância" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "Usar o nome da instância na barra de título" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "Restringir a exibição 'sobre'" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "Mostrar 'sobre' modal apenas para superusuários" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Nome da empresa" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Nome interno da Empresa" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "URL de Base" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "URL Base da instância do servidor" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Moeda Padrão" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "Selecione a moeda base para cálculos de preços" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "dias" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Baixar do URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Permitir baixar imagens remotas e arquivos de URLs externos" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Limite de tamanho para baixar" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Maior tamanho de imagem remota baixada permitida" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "Usuário-agente utilizado para baixar da URL" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Permitir a substituição de imagens e arquivos usados baixados por usuário-agente (deixar em branco por padrão)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Exigir confirmação" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Exigir confirmação explícita do usuário para uma certa ação." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Profundidade da árvore" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Profundidade padrão de visualização da árvore. Níveis mais profundos podem ser carregados gradualmente conforme necessário." -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Atualizar Intervalo de Verificação" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "Frequência para verificar atualizações (defina como zero para desativar)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Cópia de Segurança Automática" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Ativar cópia de segurança automática do banco de dados e arquivos de mídia" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Intervalo de Backup Automático" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Especificar o número de dia entre as cópias de segurança" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "Intervalo para Excluir da Tarefa" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "Os resultados da tarefa no plano de fundo serão excluídos após um número especificado de dias" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "Intervalo para Excluir do Registro de Erro" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "Registros de erros serão excluídos após um número especificado de dias" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "Intervalo para Excluir de Notificação" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Notificações de usuários será excluído após um número especificado de dias" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Suporte aos códigos de barras" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Atraso na entrada de código de barras" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Tempo de atraso de processamento de entrada de barras" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Suporte a código de barras via Câmera" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "Permitir escanear código de barras por câmera pelo navegador" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "Revisões de peças" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "Habilitar campo de revisão para a Peça" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "Padrão de expressão regular adequado para Peça IPN" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Permitir Duplicação IPN" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "Permitir que várias peças compartilhem o mesmo IPN" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Permitir Edição IPN" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "Permitir trocar o valor do IPN enquanto se edita a peça" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Copiar dados da LDM da Peça" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "Copiar dados da LDM por padrão quando duplicar a peça" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "Copiar Dados de Parâmetro da Peça" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "Copiar dados de parâmetros por padrão quando duplicar uma peça" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "Copiar Dados Teste da Peça" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "Copiar dados de teste por padrão quando duplicar a peça" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Copiar Parâmetros dos Modelos de Categoria" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "Copiar parâmetros do modelo de categoria quando criar uma peça" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Modelo" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Peças são modelos por padrão" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Montagem" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "Peças podem ser montadas a partir de outros componentes por padrão" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Componente" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "Peças podem ser usadas como sub-componentes por padrão" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Comprável" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Peças são compráveis por padrão" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Vendível" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Peças vão vendíveis por padrão" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Rastreável" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Peças vão rastreáveis por padrão" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Virtual" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Peças são virtuais por padrão" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Mostrar Importações em Visualizações" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "Exibir o assistente de importação em algumas visualizações de partes" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Mostra peças relacionadas" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Mostrar peças relacionadas para uma peça" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Dados Iniciais de Estoque" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Permitir Criação de estoque inicial quando adicional uma nova peça" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Dados Iniciais de Fornecedor" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Permitir criação de dados iniciais de fornecedor quando adicionar uma nova peça" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Formato de Exibição do Nome da Peça" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Formato para exibir o nome da peça" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Ícone de Categoria de Peça Padrão" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Ícone padrão de categoria de peça (vazio significa sem ícone)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "Forçar Unidades de Parâmetro" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "Se as unidades são fornecidas, os valores do parâmetro devem corresponder às unidades especificadas" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "Mínimo de Casas Decimais do Preço" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Mínimo número de casas decimais a exibir quando renderizar dados de preços" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "Máximo Casas Decimais de Preço" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Número máximo de casas decimais a exibir quando renderizar dados de preços" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Usar Preços do Fornecedor" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Incluir quebras de preço do fornecedor nos cálculos de preços globais" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Sobrescrever histórico de compra" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Histórico do pedido de compra substitui os intervalos dos preços do fornecedor" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "Usar Preços do Item em Estoque" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Usar preço inserido manualmente no estoque para cálculos de valores" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "Idade do preço do Item em Estoque" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Não incluir itens em estoque mais velhos que este número de dias no cálculo de preços" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "Usar Preço Variável" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "Incluir preços variáveis nos cálculos de valores gerais" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "Apenas Ativar Variáveis" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "Apenas usar peças variáveis ativas para calcular preço variáveis" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "Intervalo de Reconstrução de Preços" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "Número de dias antes da atualização automática dos preços das peças" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Preços Internos" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "Habilitar preços internos para peças" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Sobrepor Valor Interno" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "Se disponível, preços internos sobrepõe variação de cálculos de preço" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Ativar impressão de etiquetas" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Ativar impressão de etiqueta pela interface da internet" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "DPI da Imagem na Etiqueta" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Resolução de DPI quando gerar arquivo de imagens para fornecer à extensão de impressão de etiquetas" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Habilitar Relatórios" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Ativar geração de relatórios" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Modo de depuração" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Gerar relatórios em modo de depuração (saída HTML)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Tamanho da página" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Tamanho padrão da página PDF para relatórios" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Ativar Relatórios Teste" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Ativar geração de relatórios de teste" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Anexar Relatórios de Teste" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Quando imprimir um Relatório de Teste, anexar uma cópia do mesmo ao item de estoque associado" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "Seriais Únicos Globais" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "Números de série para itens de estoque devem ser globalmente únicos" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Preenchimento automático de Números Seriais" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Preencher números de série automaticamente no formulário" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Excluir Estoque Esgotado" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Determina o comportamento padrão quando um item de estoque é esgotado" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "Modelo de Código de Lote" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "Modelo para gerar códigos de lote padrão para itens de estoque" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "Validade do Estoque" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "Ativar função de validade de estoque" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "Vender estoque expirado" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "Permitir venda de estoque expirado" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "Tempo de Estoque Inativo" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "Número de dias em que os itens em estoque são considerados obsoleto antes de vencer" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "Produzir Estoque Vencido" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "Permitir produção com estoque vencido" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "Controle de propriedade do estoque" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "Ativar controle de propriedade sobre locais e itens de estoque" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "Ícone padrão do local de estoque" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "Ícone padrão de local de estoque (vazio significa sem ícone)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "Mostrar Itens de Estoque Instalados" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "Exibir itens de estoque instalados nas tabelas de estoque" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Produção" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Produção" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "Ativar Pedidos de Devolução" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "Ativar funcionalidade de pedido de retorno na interface do usuário" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Devolução" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Devolução" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "Editar os Pedidos de Devolução Concluídos" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "Permitir a edição de pedidos de devolução após serem enviados ou concluídos" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Venda" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Venda" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "Envio Padrão de Pedidos de Venda" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "Habilitar criação de envio padrão com Pedidos de Vendas" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "Editar os Pedidos de Vendas concluídos" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Permitir a edição de pedidos de vendas após serem enviados ou concluídos" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "Modelo de Referência de Pedidos de Compras" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "Modelo necessário para gerar campo de referência do Pedido de Compra" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "Editar Pedidos de Compra Concluídos" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Permitir a edição de pedidos de compras após serem enviados ou concluídos" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Habitar esquecer senha" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Habilitar a função \"Esqueci minha senha\" nas páginas de acesso" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Habilitar cadastro" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "Ativar auto-registro para usuários na página de entrada" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "Ativar SSO" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "Ativar SSO na página de acesso" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "Ativar registro SSO" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Ativar auto-registro por SSO para usuários na página de entrada" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Email obrigatório" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "Exigir do usuário o e-mail no cadastro" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "Auto-preencher usuários SSO" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "Preencher automaticamente os detalhes do usuário a partir de dados da conta SSO" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "Enviar email duplo" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "No registro pedir aos usuários duas vezes pelo email" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Senha duas vezes" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "No registro pedir aos usuários duas vezes pela senha" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Domínios permitidos" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Restringir registros a certos domínios (separados por vírgula, começando com @)" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Grupo no cadastro" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "Grupo ao qual novos usuários são atribuídos no registro" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "Forçar AMF" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Os usuários devem usar uma segurança multifator." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Checar extensões no início" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Checar que todas as extensões instaladas no início — ativar em ambientes de contêineres" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "Ativar integração URL" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "Ativar extensão para adicionar rotas URL" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "Ativar integração de navegação" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "Ativar extensões para integrar à navegação" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "Ativa integração com aplicativo" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "Ativar extensões para adicionar aplicativos" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "Ativar integração do calendário" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "Ativar extensões para executar tarefas agendadas" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "Ativar integração de eventos" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "Ativar extensões para responder a eventos internos" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "Habilitar códigos de projeto" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "Ativar códigos de projeto para rastrear projetos" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "Funcionalidade de Balanço do Inventário" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Ativar funcionalidade de balanço para gravar níveis de estoque e calcular seu valor" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "Excluir Locais Externos" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Excluir itens de estoque em locais externos dos cálculos do estoque" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "Período de Balanço Automático" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Número de dias entre gravação do balanço de estoque (coloque zero para desativar)" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "Intervalo para Excluir o Relatório" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Relatórios de balanço serão apagados após um número de dias especificado" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "Ocultar peças inativas" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ocultar peças inativas nos resultados exibidos na página inicial" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Mostrar peças subscritas" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Mostrar peças subscritas na tela inicial" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Mostrar categorias subscritas" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Mostrar categorias de peças subscritas na tela inicial" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Mostrar peças mais recentes" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Mostrar as peças mais recentes na página inicial" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Mostrar LDMs não validadas" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "Mostrar LDMs que aguardam validação na página inicial" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Mostrar alterações recentes de estoque" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar itens de estoque alterados recentemente na página inicial" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Mostrar estoque baixo" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Mostrar itens de baixo estoque na página inicial" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Mostrar estoque esgotado" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Mostrar itens sem estoque na página inicial" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Mostrar estoque necessário" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar itens de estoque necessários para produções na tela inicial" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Mostrar estoque expirado" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Mostrar expirados itens em estoque na tela inicial" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Mostrar estoque inativo" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Mostrar estoque inativo na tela inicial" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Mostrar produções pendentes" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Mostrar produções pendentes na tela inicial" @@ -3092,450 +3091,450 @@ msgstr "Mostrar produções atrasadas" msgid "Show overdue builds on the homepage" msgstr "Mostrar produções atrasadas na tela inicial" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "Mostrar pedidos de compra pendentes" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "Mostrar os Pedidos de Compras pendentes na página inicial" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "Mostrar Pedidos de Compra atrasados" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "Mostrar os Pedidos de Compras atrasadas na tela inicial" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "Mostrar pedidos de vendas pendentes" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "Mostrar os Pedidos de Vendas pendentes na página inicial" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "Mostrar Pedidos de Venda atrasados" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "Mostrar os Pedidos de Vendas atrasadas na tela inicial" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "Mostrar remessas de OV pendentes" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "Mostrar envios OV pendentes na tela inicial" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Mostrar notícias" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Mostrar notícias na tela inicial" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "Mostrar etiqueta em linha" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Mostrar etiquetas em PDF no navegador, ao invés de baixar o arquivo" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "Impressora de etiquetas padrão" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "Configurar qual impressora de etiqueta deve ser selecionada por padrão" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "Mostrar relatório em linha" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Mostrar relatórios em PDF no navegador, ao invés de baixar o arquivo" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Procurar Peças" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "Mostrar peças na janela de visualização de pesquisa" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "Buscar Peças do Fornecedor" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "Mostrar fornecedor de peças na janela de visualização de pesquisa" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Buscar peças do fabricante" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "Mostrar fabricante de peças na janela de visualização de pesquisa" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Ocultar peças inativas" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "Não incluir peças inativas na janela de visualização de pesquisa" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "Pesquisar Categorias" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "Mostrar categoria das peças na janela de visualização de pesquisa" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "Pesquisar Estoque" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "Mostrar itens do estoque na janela de visualização de pesquisa" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "Ocultar itens do estoque indisponíveis" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "Não incluir itens de estoque que não estão disponíveis na janela de visualização de pesquisa" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "Procurar Locais" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "Mostrar locais de estoque na janela de visualização de pesquisa" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "Pesquisar empresas" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "Mostrar empresas na janela de visualização de pesquisa" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Procurar Pedidos de Produção" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "Mostrar pedidos de produção na janela de visualização de pesquisa" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "Mostrar Pedido de Compras" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "Mostrar pedidos de compra na janela de visualização de pesquisa" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "Não incluir Pedidos de Compras Inativos" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "Não incluir pedidos de compras inativos na janela de visualização de pesquisa" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Procurar Pedidos de Vendas" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "Mostrar pedidos de vendas na janela de visualização de pesquisa" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "Não Incluir Pedidos de Compras Inativas" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "Não incluir pedidos de vendas inativos na janela de visualização de pesquisa" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Procurar Pedidos de Devolução" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "Mostrar pedidos de devolução na janela de visualização de pesquisa" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "Não Incluir Pedidos de Devolução Inativas" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "Não incluir pedidos de devolução inativos na janela de visualização de pesquisa" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "Mostrar Resultados Anteriores" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "Número de resultados mostrados em cada seção da janela de visualização de pesquisa" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "Pesquisa de Regex" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "Permitir expressôes comuns nas conultas de pesquisas" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "Busca de Palavras Inteira" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "Pesquisa retorna que palavra inteira coincide" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Mostrar Quantidade nos Formulários" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "Mostrar a quantidade de peças disponíveis em alguns formulários" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "Tecla Esc Fecha Formulários" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "Usar a tecla Esc para fechar fomulários modais" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Fixar Navbar" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "A posição do Navbar é fixa no topo da tela" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Formato da data" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Formato preferido para mostrar datas" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Agendamento de peças" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Mostrar informações de agendamento de peças" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Balanço de Peça" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Mostrar informação de balanço da peça (se a funcionalidade de balanço estiver habilitada)" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "Comprimento da Tabela de Frases" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "Modelo de rótulo padrão da peça" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "O modelo de rótulo da peça a ser selecionado automaticamente" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "Modelo padrão de item de estoque" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "O modelo de rótulo do item a ser selecionado automaticamente" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "Modelo de rótulo de localização do estoque padrão" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "O modelo de rótulo do local de estoque a ser selecionado automaticamente" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "Receber relatório de erros" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "Receber notificações para erros do sistema" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "Quantidade de Parcelamentos" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Preço" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "Preço unitário na quantidade especificada" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "Ponto final" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "Ponto final em qual o gancho web foi recebido" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "Nome para este webhook" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Ativo" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "Este gancho web está ativo" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "Token" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "Token de acesso" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Segredo" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "Segredo compartilhado para HMAC" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "ID da Mensagem" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "Identificador exclusivo desta mensagem" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Servidor" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "Servidor do qual esta mensagem foi recebida" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Cabeçalho" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "Cabeçalho da mensagem" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Corpo" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "Corpo da mensagem" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "Ponto do qual esta mensagem foi recebida" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "Trabalhado em" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "O trabalho desta mensagem foi concluído?" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "Id" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Título" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Publicado" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Resumo" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "Lida" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "Esta notícia do item foi lida?" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "Esta notícia do item foi lida?" msgid "Image" msgstr "Imagem" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "Arquivo de imagem" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "Nome da unidade deve ser um identificador válido" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "Nome da unidade" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Símbolo" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "Símbolo de unidade opcional" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definição" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "Definição de unidade" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Novo {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "Um novo pedido foi criado e atribuído a você" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "Itens Recebidos" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "Os itens de um pedido de compra foram recebidos" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "Os itens de um pedido de devolução foram recebidos" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "Erro criado pela extensão" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Carregar Arquivo" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "Carregar Arquivo" msgid "Match Fields" msgstr "Coincidir campos" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "Coincidir Itens" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "Os campos não correspondem" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Peças importadas" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "Peças importadas" msgid "Previous Step" msgstr "Passo Anterior" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Descrição da empresa" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "Descrição da empresa" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Página Web" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "URL do Site da empresa" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Número de telefone" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Número de telefone do contato" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Endereço de e-mail do contato" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Contato" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Ponto de contato" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Link para informações externas da empresa" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "é cliente" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Você vende itens para esta empresa?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "é fornecedor" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Você compra itens desta empresa?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "é fabricante" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Esta empresa fabrica peças?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Moeda padrão utilizada para esta empresa" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Empresa" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "Selecione a Empresa" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "Título do endereço" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "Título descrevendo a entrada de endereço" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "Endereço Principal" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "Definir como endereço principal" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "Linha 1" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "Linha de endereço 1" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "Linha 2" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "Linha de endereço 2" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "Código Postal" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "Cidade/Região" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "Código Postal Cidade / Região" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "Estado/Provincia" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "Estado ou Província" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "País" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "País do endereço" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "Notas de envio da transportadora" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "Notas para o envio da transportadora" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "Notas de envio interno" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "Notas de envio para uso interno" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "Link para as informações do endereço (externo)" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Peça base" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Selecionar peça" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "Selecionar peça" msgid "Manufacturer" msgstr "Fabricante" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Selecionar fabricante" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "Selecionar fabricante" msgid "MPN" msgstr "NPF" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Número de Peça do Fabricante" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "URL do link externo da peça do fabricante" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "Descrição da peça do fabricante" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Peça do Fabricante" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Nome do parâmetro" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Valor" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Valor do Parâmetro" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Unidades" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Unidades do parâmetro" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Unidades de pacote devem ser compatíveis com as unidades de peça base" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Unidades de pacote deve ser maior do que zero" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base msgid "Supplier" msgstr "Fornecedor" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Selecione o fornecedor" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Unidade de reserva de estoque fornecedor" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Selecionar peça do fabricante" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "URL do link externo da peça do fabricante" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "Descrição da peça fornecedor" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "Descrição da peça fornecedor" msgid "Note" msgstr "Anotação" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "preço base" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "Taxa mínima (ex.: taxa de estoque)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Embalagem" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "Embalagem de peças" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "Embalagem de peças" msgid "Pack Quantity" msgstr "Quantidade de embalagens" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Quantidade total fornecida em um único pacote. Deixe em branco para itens únicos." -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "múltiplo" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "Pedir múltiplos" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "Quantidade disponível do fornecedor" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "Disponibilidade Atualizada" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "Data da última atualização da disponibilidade dos dados" @@ -4067,10 +4066,10 @@ msgstr "Baixar imagem do URL" msgid "Delete image" msgstr "Excluir imagem" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "Cliente" msgid "Uses default currency" msgstr "Usar moeda padrão" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "Estoque do Fornecedor" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Pedidos de compra" @@ -4188,7 +4187,7 @@ msgstr "Novo Pedido de Compra" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Pedidos de vendas" @@ -4213,7 +4212,7 @@ msgstr "Estoque Atribuído" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "Pedidos de Devolução" @@ -4281,7 +4280,7 @@ msgstr "Nenhuma informação do fabricante disponível" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Fornecedores" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "Endereços" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "Excluir Fornecedor da Peça" msgid "No supplier information available" msgstr "Nenhuma informação do fornecedor está disponível" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "Vincular Código de Barras à Parte do Fornecedor" msgid "Update Part Availability" msgstr "Atualizar disponibilidade de peças" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Itens de Estoque" @@ -4471,11 +4470,11 @@ msgstr "Empresas" msgid "New Company" msgstr "Nova Empresa" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Nome da etiqueta" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Descrição da etiqueta" @@ -4487,7 +4486,7 @@ msgstr "Etiqueta" msgid "Label template file" msgstr "Arquivo de modelo de etiqueta" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Habilitado" @@ -4511,7 +4510,7 @@ msgstr "Altura [mm]" msgid "Label height, specified in mm" msgstr "Altura da Etiqueta, em mm" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Padrão de Nome de Arquivo" @@ -4519,14 +4518,14 @@ msgstr "Padrão de Nome de Arquivo" msgid "Pattern for generating label filenames" msgstr "Padrão para gerar nomes do arquivo das etiquetas" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "Filtros de consulta (lista de valores separados por vírgula)" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Filtros" @@ -4543,7 +4542,7 @@ msgstr "Código QR" msgid "QR code" msgstr "Código QR" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "Código QR" msgid "Total Price" msgstr "Preço Total" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "Nenhum pedido de compra correspondente encontrado" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "Nenhum pedido de compra correspondente encontrado" msgid "Purchase Order" msgstr "Pedido de Compra" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "Pedido de Compra" msgid "Return Order" msgstr "Devolver pedido" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Desconhecido" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "Preço total deste pedido" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "Moeda do pedido" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "Moeda para este pedido (deixe em branco para usar o padrão da empresa)" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "O contato não corresponde à empresa selecionada" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "Descrição do pedido (opcional)" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "Selecione o código do projeto para este pedido" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Link para página externa" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Data esperada para entrega do pedido. O Pedido estará atrasado após esta data." -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Criado por" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Usuário ou grupo responsável para este pedido" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "Ponto de contato para este pedido" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "Endereço da empresa para este pedido" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Referência do pedido" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Situação do pedido de compra" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Empresa da qual os itens estão sendo encomendados" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "Referencia do fornecedor" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "Código de referência do pedido fornecedor" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "recebido por" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Data de emissão" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Dia que o pedido foi feito" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "Dia que o pedido foi concluído" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "Fornecedor de peça deve corresponder a fornecedor da OC" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "Quantidade deve ser um número positivo" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Empresa para qual os itens foi vendidos" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Referência do Cliente " -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "Código de Referência do pedido do cliente" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Data de Envio" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "enviado por" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "O pedido não pode ser concluído, pois nenhuma parte foi atribuída" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "Apenas um pedido aberto pode ser marcado como completo" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Pedido não pode ser concluído, pois, há envios incompletos" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "Pedido não pode ser concluído, pois, há itens na linha incompletos" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Quantidade do item" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "Referência do Item em Linha" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "Observações do Item de Linha" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Data alvo para este item de linha (deixe em branco para usar a data alvo do pedido)" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "Descrição item de linha (opcional)" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Contexto" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "Contexto adicional para esta linha" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "Preço Unitário" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "A peça do fornecedor deve corresponder ao fornecedor" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "excluído" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Pedido" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "Fornecedor da Peça" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "Fornecedor da Peça" msgid "Received" msgstr "Recebido" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "Número de itens recebidos" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Preço de Compra" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Preço unitário de compra" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "Onde o Comprador quer que este item seja armazenado?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "Peça virtual não pode ser atribuída a um pedido de venda" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "Apenas peças vendáveis podem ser atribuídas a um pedido de venda" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Preço de Venda" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Preço de venda unitário" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Quantidade enviada" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Data do envio" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Data de Entrega" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "Data da entrega do envio" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Verificado por" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Usuário que verificou esta remessa" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Remessa" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Número do Envio" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Número de Rastreamento" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Informação de rastreamento da remessa" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "Número da Fatura" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "Número de referência para fatura associada" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "O pedido já foi enviado" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "Remessa não foi alocada nos itens de estoque" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "O item do estoque não foi atribuído" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "Não é possível alocar o item de estoque para uma linha de uma peça diferente" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "Não é possível alocar uma linha sem uma peça" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "A quantidade de alocação não pode exceder a quantidade em estoque" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "Quantidade deve ser 1 para item de estoque serializado" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "Pedidos de venda não coincidem com a remessa" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "Remessa não coincide com pedido de venda" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Linha" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "Referência de remessa do pedido de venda" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Item" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "Selecione o item de estoque para alocar" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Insira a quantidade de atribuição de estoque" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "Referência de Pedidos de Devolução" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "Empresa da qual os itens estão sendo retornados" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "Estado do pedido de retorno" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "Somente itens da série podem ser devolvidos" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "Selecione o item a ser devolvido pelo cliente" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "Data de Recebimento" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "Data que o pedido a ser devolvido foi recebido" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Despesa/gastos" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "Gastos com esta linha de itens" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "Gastos para reparar e/ou devolver esta linha de itens" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "Pedido não pode ser cancelado" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "Permitir que o pedido seja fechado com itens de linha incompletos" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "O pedido tem itens da linha incompletos" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "O pedido não está aberto" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Moeda de preço de compra" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "A peça do fornecedor deve ser especificada" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "O pedido de compra deve ser especificado" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "O fornecedor deve corresponder o pedido de compra" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "Pedido de compra deve corresponder ao fornecedor" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "Itens de linha" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "O item de linha não corresponde ao pedido de compra" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "Selecione o local de destino para os itens recebidos" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "Digite o código do lote para itens de estoque recebidos" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Digite o número de série para itens de estoque recebidos" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Código de barras" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "Código de barras lido" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "Código de barras já em uso" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "Quantidade inteira deve ser fornecida para peças rastreáveis" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "Itens de linha deve ser providenciados" @@ -5040,51 +5039,51 @@ msgstr "Loca de destino deve ser especificado" msgid "Supplied barcode values must be unique" msgstr "Código de barras fornecido deve ser único" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "Moeda de preço de venda" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "Nenhum detalhe da remessa fornecido" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "Item de linha não está associado a este pedido" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "Quantidade deve ser positiva" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Digite números de série para alocar" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "O pedido já foi enviado" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "O envio não está associado a este pedido" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "Nenhuma correspondência encontrada para os seguintes números de série" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "Os seguintes números de série já estão alocados" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "Devolver item do pedido" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "Item do pedido não bate com o pedido de devolução" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "Item do pedido já foi recebido" @@ -5092,24 +5091,24 @@ msgstr "Item do pedido já foi recebido" msgid "Items can only be received against orders which are in progress" msgstr "Itens só podem ser recebidos de pedidos em processamento" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "Tipo de moeda para o item do pedido" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "Pedido de compra vencido" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Pedido de compra {po} está atrasada" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "Pedido de venda vencido" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Pedido de venda {so} está atrasada" @@ -5478,579 +5477,579 @@ msgstr "Nova Remessa" msgid "Match Supplier Parts" msgstr "Corresponder Peças com Fornecedor" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "Pedido de Venda não encontrado" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Preço não encontrado" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Atualizado {part} unid.-preço para {price}" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Atualizado {part} unid.-preço para {price} e quantidade para {qty}" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "ID da Peça" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Nome da Peça" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "Descrição da Peça" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revisão" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Palavras chave" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "ID da Categoria" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "Nome da Categoria" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "ID Local Padrão" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "ID de Fornecedor Padrão" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Variante de" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Estoque Mínimo" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "Em Estoque" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "No pedido" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Usado em" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "Produzindo" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Custo Mínimo" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Custo Máximo" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "ID Paternal" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "Nome Paternal" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Caminho da Categoria" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Peças" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "Nível da LDM" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "ID Item LDM" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "IPN Paternal" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "IPN da Peça" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Preço Mínimo" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Preço Máximo" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "Pedido de compra recebido" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "Pedidos de Venda Feitos" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "Estoque produzido pelo Pedido de Produção" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "Estoque obrigatório para Pedido de Produção" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "Válido" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "Validar a Lista de Materiais completa" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "Esta opção deve ser selecionada" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Local Padrão" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Estoque Total" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Estoque Disponível" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "Quantidade para o cálculo de preço" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria da Peça" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Categorias de Peça" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Local padrão para peças desta categoria" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Estrutural" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Peças não podem ser diretamente atribuídas a uma categoria estrutural, mas podem ser atribuídas a categorias filhas." -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Palavras-chave Padrão" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Palavras-chave padrão para peças nesta categoria" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Ícone" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Ícone (opcional)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Você não pode tornar esta categoria em estrutural, pois, algumas partes já estão alocadas!" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "Escolha inválida para peça parental" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "Item em estoque com este número de série já existe" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "Não é permitido duplicar IPN em configurações de partes" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "Uma parte com este Nome, IPN e Revisão já existe." -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "Peças não podem ser atribuídas a categorias estruturais!" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Nome da peça" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "É um modelo" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "Esta peça é uma peça modelo?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "Esta peça é variante de outra peça?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "Descrição da peça (opcional)" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Categoria" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Categoria da Peça" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "Numero interno do produto" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "Revisão de peça ou número de versão" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "Onde este item é armazenado normalmente?" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Fornecedor Padrão" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "Fornecedor padrão da peça" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "Validade Padrão" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "Validade (em dias) para itens do estoque desta peça" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "Nível mínimo de estoque permitido" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "Unidade de medida para esta peça" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "Essa peça pode ser construída a partir de outras peças?" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "Essa peça pode ser usada para construir outras peças?" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "Esta parte tem rastreamento para itens únicos?" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "Esta peça pode ser comprada de fornecedores externos?" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "Esta peça pode ser vendida a clientes?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "Esta parte está ativa?" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "Esta é uma peça virtual, como um software de produto ou licença?" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "Soma de Verificação da LDM" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "Soma de verificação da LDM armazenada" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "LDM conferida por" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "LDM verificada no dia" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "Criação de Usuário" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Último Balanço" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "Venda múltipla" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "Moeda usada para armazenar os cálculos de preços" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "Custo Mínimo da LDM" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "Custo mínimo das peças componentes" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "Custo Máximo da LDM" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "Custo máximo das peças componentes" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "Custo Mínimo de Compra" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "Custo mínimo histórico de compra" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "Custo Máximo de Compra" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "Custo máximo histórico de compra" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "Preço Interno Mínimo" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "Custo mínimo baseado nos intervalos de preço internos" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "Preço Interno Máximo" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "Custo máximo baseado nos intervalos de preço internos" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "Preço Mínimo do Fornecedor" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "Preço mínimo da peça de fornecedores externos" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "Preço Máximo do Fornecedor" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "Preço máximo da peça de fornecedores externos" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "Custo Mínimo variável" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "Custo mínimo calculado das peças variáveis" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "Custo Máximo Variável" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "Custo máximo calculado das peças variáveis" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "Custo total mínimo calculado" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "Custo total máximo calculado" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "Preço Mínimo de Venda" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "Preço mínimo de venda baseado nos intervalos de preço" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "Preço Máximo de Venda" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "Preço máximo de venda baseado nos intervalos de preço" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "Custo Mínimo de Venda" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "Preço histórico mínimo de venda" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "Custo Máximo de Venda" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "Preço histórico máximo de venda" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "Peça para Balanço" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "Total de Itens" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "Número de entradas de estoques individuais no momento do balanço" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "Estoque total disponível no momento do balanço" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "Estoque total disponível no momento do balanço" msgid "Date" msgstr "Data" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "Data de realização do balanço" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "Notas adicionais" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "Usuário que fez o balanço" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "Custo Mínimo de Estoque" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "Custo mínimo estimado de estoque disponível" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "Custo Máximo de Estoque" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "Custo máximo estimado de estoque disponível" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "Reportar" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "Arquivo de Relatório de Balanço (gerado internamente)" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "Contagem de Peças" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "Número de peças cobertas pelo Balanço" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "Usuário que solicitou este relatório de balanço" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "Modelos de teste só podem ser criados para peças rastreáveis" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "O teste com este nome já existe para esta peça" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Nome de Teste" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "Insira um nome para o teste" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "Descrição do Teste" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "Digite a descrição para este teste" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Requerido" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "Este teste é obrigatório passar?" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Requer Valor" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "Este teste requer um valor ao adicionar um resultado de teste?" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Anexo obrigatório" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "Este teste requer um anexo ao adicionar um resultado de teste?" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "Parâmetros da caixa de seleção não podem ter unidades" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "Os parâmetros da caixa de seleção não podem ter escolhas" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "Escolhas devem ser únicas" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "Nome do modelo de parâmetro deve ser único" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "Nome do Parâmetro" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "Unidades físicas para este parâmetro" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "Descrição do Parâmetro" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Caixa de seleção" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "Este parâmetro é uma caixa de seleção?" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Escolhas" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "Opções válidas para este parâmetro (separadas por vírgulas)" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "Escolha inválida para valor do parâmetro" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "Peça Paternal" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Modelo de parâmetro" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "Dados" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "Valor do Parâmetro" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valor Padrão" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "Valor Padrão do Parâmetro" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "ID da peça ou nome da peça" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "Valor exclusivo do ID de peça" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "Valor da parte IPN" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "Nível" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "Nível da LDM" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "Item LDM" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "Selecione a Peça Parental" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "Sub peça" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "Selecionar peça a ser usada na LDM" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "Quantidade de LDM para este item LDM" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "Este item LDM é opcional" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Este item LDM é consumível (não é rastreado nos pedidos de construção)" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Excedente" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantidade estimada de desperdício (absoluto ou porcentagem)" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "Referência do Item LDM" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "Notas do Item LDM" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "Soma de verificação" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "Soma de Verificação da LDM da linha" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Validado" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "O item da LDM foi validado" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Obtém herdados" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Este item da LDM é herdado por LDMs para peças variáveis" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Permitir variações" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Itens de estoque para as peças das variantes podem ser usados para este item LDM" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "Quantidade deve ser valor inteiro para peças rastreáveis" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "Sub peça deve ser especificada" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "Substituir Item da LDM" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "A peça de substituição não pode ser a mesma que a peça mestre" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "Item LDM Parental" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "Substituir peça" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "Selecionar Peça Relacionada" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "Relacionamento da peça não pode ser criada com ela mesma" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "Relação duplicada já existe" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Moeda de compra deste item de estoque" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "Nenhuma parte selecionada" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "Selecionar categoria" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "Peça Original" @@ -6401,299 +6400,299 @@ msgstr "Selecione a peça original para duplicar" msgid "Copy Image" msgstr "Copiar imagem" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "Copiar imagem da peça original" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Copiar LDM" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "Copiar lista de materiais da peça original" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Copiar Parâmetros" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "Copiar dados do parâmetro da peça original" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "Quantidade Inicial de Estoque" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Especificar a quantidade inicial de estoque para a peça. Se for zero, nenhum estoque é adicionado." -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "Local Inicial do Estoque" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "Especifique o local do estoque inicial para esta Peça" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "Selecione o fornecedor (ou deixe em branco para pular)" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "Selecione fabricante (ou deixe em branco para pular)" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "Número de Peça do Fabricante" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "A empresa selecionada não é um fornecedor válido" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "A empresa selecionada não é um fabricante válido" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "A peça do fabricante que corresponde a essa MPN já existe" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "A peça do fornecedor que corresponde a essa SKU já existe" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Peça duplicada" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "Copiar dados iniciais de outra peça" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "Estoque inicial" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "Criar peça com a quantidade inicial de estoque" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "Informações do Fornecedor" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "Adicionar informação inicial de fornecedor para esta peça" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "Copiar Parâmetros da Categoria" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "Copiar modelos de parâmetros a partir de categoria de peça selecionada" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Limitar o relatório de balanço a uma determinada peça e quaisquer peças variantes" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Limitar o relatório de balanço a uma determinada categoria, e qualquer peças filhas" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Limitar o relatório de balanço a um determinado local de estoque, e qualquer local filho" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "Excluir Estoque externo" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "Excluir itens de estoque em locais externos" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "Gerar relatório" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "Gerar arquivo de relatório contendo dados de estoque calculados" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "Atualizar Peças" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "Atualizar peças especificadas com dados de estoque calculados" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "Função de Balanço de Estoque não está ativada" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "Atualizar" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "Atualizar preços desta peça" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "Selecionar peça para copiar a LDM" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "Remover Dado Existente" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "Remova itens LDM existentes antes de copiar" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "Incluir Herdados" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "Incluir itens LDM que são herdados de peças modelo" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "Pular Linhas inválidas" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "Habilitar esta opção para pular linhas inválidas" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "Copiar Peças Substitutas" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "Copiar peças de substitutas quando duplicar itens de LDM" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "Limpar LDM Existente" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "Apagar itens LDM existentes antes de carregar" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "Nenhuma coluna de peça especificada" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "Múltiplas peças correspondentes encontradas" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "Nenhuma peça correspondente encontrada" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "Peça não está designada como componente" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "Quantidade não foi fornecida" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Quantidade Inválida" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "Pelo menos um item LDM é necessário" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "Quantidade Total" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "Custo Min Total" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "Custo Max Total" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "Balanço de Estoque Disponível" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "Um novo relatório de balanço do estoque está disponível para baixar" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "Notificação de estoque baixo" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "O estoque disponível para {part.name} caiu abaixo do nível mínimo definido" @@ -6707,14 +6706,16 @@ msgid "The BOM this part has been changed, and must be validated" msgstr "A LDM dessa peça foi alterada, e deve ser validada" #: part/templates/part/bom.html:17 -#, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +#, fuzzy, python-format +#| msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "A LDM de %(part)s foi verificada pela última vez por %(checker)s em %(check_date)s" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "A LDM para %(part)s não foi validada." +#, fuzzy +#| msgid "This BOM item has been validated" +msgid "This BOM has not been validated." +msgstr "O item da LDM foi validado" #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -6825,9 +6826,9 @@ msgid "Add stocktake information" msgstr "Adicionar informações de balanço de estoque" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "Balanço" @@ -7235,7 +7236,7 @@ msgstr "" msgid "Edit" msgstr "Editar" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7365,11 @@ msgstr "Criar variante de peça" msgid "Create a new variant part from this template" msgstr "Criar uma peça variante a partir deste modelo" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Banco de dados desconhecido" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,119 +7377,119 @@ msgstr "" msgid "Match References" msgstr "Referências de combinações" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "Selecionar Imagem da Peça" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "Atualizar imagem da peça" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Imagem da peça não encontrada" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "Preço Peça" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Nenhuma ação especificada" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Nenhuma ação correspondente encontrada" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Nenhum resultado encontrado para os dados do código de barras" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Coincidência encontrada para dados de código de barras" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Código de barras corresponde ao item existente" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "Multiple matching parts found" msgid "Multiple matching line items found" msgstr "Múltiplas peças correspondentes encontradas" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching line items" msgid "No matching line item found" msgstr "Nenhum item de linha correspondente" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 #, fuzzy #| msgid "Barcode does not match valid stock item" msgid "Barcode does not match an existing stock item" msgstr "Código de barras não corresponde a item de estoque válido" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 #, fuzzy #| msgid "Selected stock item does not match BOM line" msgid "Stock item does not match line item" msgstr "Item estoque selecionado não coincide com linha da LDM" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "Estoque insuficiente disponível" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock item assigned to sales order" msgid "Stock item allocated to sales order" msgstr "Item de estoque atribuído para pedido de venda" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "No user information" msgid "Not enough information" msgstr "Sem informações de usuário" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7502,11 +7503,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7524,7 +7525,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "Pedido de Compra não existe mais" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7532,7 +7533,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7540,23 +7541,23 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 #, fuzzy #| msgid "Sales Order Allocations" msgid "Sales Order to allocate items against" msgstr "Alocações do Pedido de Vendas" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 #, fuzzy #| msgid "Sales order not found" msgid "Sales order is not pending" msgstr "Pedido de Venda não encontrado" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7566,19 +7567,19 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "Referência de remessa do pedido de venda" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 #, fuzzy #| msgid "Shipment has already been shipped" msgid "Shipment has already been delivered" msgstr "O pedido já foi enviado" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 #, fuzzy #| msgid "Quantity to order" msgid "Quantity to allocate" msgstr "Quantidade de compra" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "Impressão de etiqueta falhou" @@ -7591,8 +7592,8 @@ msgid "Provides native support for barcodes" msgstr "Fornece suporte nativo para códigos de barras" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7600,49 +7601,49 @@ msgstr "Fornece suporte nativo para códigos de barras" msgid "InvenTree contributors" msgstr "Contribuidores do InvenTree" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "Notificações do InvenTree" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "Métodos de envio de notificação integrados" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "Habilitar notificações por email" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "Permitir enviar emails para notificações de eventos" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "Habilitar notificações por Slack" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "Permitir envio de notificações de eventos pelo canal de mensagens do slack" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "Link do gancho de entrada do Slack" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "URL usada para enviar mensagens para um canal do Slack" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "Abrir link" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7682,7 +7683,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7698,7 +7699,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7758,113 +7759,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "Configuração de Extensão" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "Configuração de Extensões" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "Chave" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "Chave da extensão" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "Nome da Extensão" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "O plug-in está ativo" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "Instalado" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "Plug-in de exemplo" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "Plugin embutido" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Extensões" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "Método" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "Nenhum autor encontrado" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "A extensão '{p}' não é compatível com a versão atual do InvenTree {v}" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Extensão requer pelo menos a versão {v}" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Extensão requer no máximo a versão {v}" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "Ativar PO" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "Ativar a funcionalidade PO na interface InvenTree" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "Chave API" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "Chave necessária para acesso à API externa" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Numérico" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "Uma configuração numérica" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "Configurações de Escolha" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "Uma configuração com várias escolhas" @@ -7876,35 +7877,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "URL de origem" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Fonte do pacote — este pode ser um registro personalizado ou um caminho de VCS" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "Nome do Pacote" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Nome para o Pacote da Extensão — também pode conter um indicador de versão" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "Confirmar instalação da extensão" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Isto instalará a extensão agora na instância atual. A instância irá entrar em manutenção." -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "Instalação não confirmada" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "Qualquer nome do pacote URL deve ser fornecido" @@ -7916,40 +7917,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "Ativar Extensão" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "Ativar esta extensão" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "Nenhum objeto válido fornecido para o modelo" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Arquivo modelo '{template}' perdido ou não existe" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "Relatório de teste" @@ -7969,103 +7970,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Nome do modelo" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "Arquivo modelo de relatório" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "Descrição do modelo de relatório" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "Relatar número de revisão (auto-incrementos)" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "Padrão para gerar nomes de arquivo de relatórios" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "Modelo de relatório Habilitado" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "Filtros de consulta de itens de estoque(lista de valores separados por vírgula)" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "Incluir testes instalados" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "Incluir resultados de testes para itens de estoque instalados dentro de item montado" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "Filtros de Produção" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "Filtros de consulta de produção (lista de valores separados por vírgula" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "Filtros de Peças" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "Filtros de consulta de peças (lista de valores separados por vírgula" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "Filtros de consultas de pedidos de compra" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "Filtros de consultas de pedidos de venda" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "Filtrar pesquisa de itens devolvidos" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "Recorte" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "Relatar arquivo de recorte" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "Descrição do arquivo de recorte" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "Patrimônio" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "Reportar arquivo de ativos" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "Descrição do arquivo de ativos" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "filtros de consulta de locais de estoque(lista de valores separados por vírgula)" @@ -8106,7 +8107,7 @@ msgstr "Total" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8132,12 +8133,12 @@ msgid "Test Results" msgstr "Resultados do teste" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "Teste" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "Resultado" @@ -8163,7 +8164,7 @@ msgid "Installed Items" msgstr "Itens instalados" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Série" @@ -8172,438 +8173,438 @@ msgstr "Série" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "ID do local" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "Nome do Local" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Caminho do local" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "ID do item estoque" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "Código da situação" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "Número da Peça do Fornecedor" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "ID do Fornecedor" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "Nome do Fornecedor" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "ID Cliente" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Instalado em" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "ID da Produção" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "ID do pedido de venda" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "ID do pedido de compra" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "Revisão Necessária" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "Excluir quando esgotado" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "Data de validade" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "Localização externa" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "Inativo" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "Quantidade obrigatória" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "Uma peça válida deve ser fornecida" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "A peça do fornecedor informado não existe" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "A peça do fornecedor tem um tamanho de pacote definido, mas o item use_pack_size não foi definida" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Números de série não podem ser fornecidos para uma parte não rastreável" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Localização do estoque" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Locais de estoque" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Responsavel" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Selecionar Responsável" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Os itens de estoque podem não estar diretamente localizados em um local de estoque estrutural, mas podem ser localizados em locais filhos." -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Externo" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "Esta é uma localização de estoque externo" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Você não pode tornar este local do estoque estrutural, pois alguns itens de estoque já estão localizados nele!" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "Os itens de estoque não podem estar localizados em locais de estoque estrutural!" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "Item de estoque não pode ser criado para peças virtuais" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "A quantidade deve ser 1 para um item com número de série" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Número de série não pode ser definido se quantidade maior que 1" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "O item não pode pertencer a si mesmo" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "Item deve ter uma referência de produção se is_building=True" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "Referência de produção não aponta ao mesmo objeto da peça" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Item de Estoque Parental" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "Peça base" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "Selecione uma peça do fornecedor correspondente para este item de estoque" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "Onde está localizado este item de estoque?" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "Embalagem deste item de estoque está armazenado em" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "Este item está instalado em outro item?" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "Número de série para este item" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "Código do lote para este item de estoque" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "Quantidade de Estoque" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "Produção de Origem" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "Produção para este item de estoque" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Consumido por" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "Pedido de produção que consumiu este item de estoque" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "Pedido de compra Fonte" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "Pedido de Compra para este item de estoque" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "Destino do Pedido de Venda" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Data de validade para o item de estoque. Estoque será considerado expirado após este dia" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "Excluir quando esgotado" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "Excluir este item de estoque quando o estoque for esgotado" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "Preço de compra unitário único no momento da compra" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "Convertido para peça" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "Peça não está definida como rastreável" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "Quantidade deve ser inteira" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "Números de série devem ser uma lista de números inteiros" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "A quantidade não corresponde aos números de série" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Números de série já existem" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "Item em estoque foi reservado para um pedido" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "Item em estoque está instalado em outro item" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "item em estoque contem outro(s) items" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "Item em estoque foi reservado para outro cliente" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "Item no estoque está em produção no momento" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "Itens de série não podem ser mesclados" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "Item de estoque duplicado" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "Itens de estoque devem se referir à mesma peça" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "Itens de estoque devem se referir à mesma peça do fornecedor" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "Códigos de estado do estoque devem corresponder" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "Item do estoque não pode ser realocado se não houver estoque da mesma" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "Observações de entrada" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "Deve-se fornecer o valor desse teste" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "O anexo deve ser enviado para este teste" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "Nome de teste" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "Resultado do teste" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "Valor da saída do teste" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "Anexo do resultado do teste" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "Notas do teste" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "Número de série é muito grande" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Usar tamanho do pacote ao adicionar: a quantidade definida é o número de pacotes" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "Preço de compra para este item de estoque, por unidade ou pacote" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "Insira o número de itens de estoque para serializar" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Quantidade não deve exceder a quantidade disponível em estoque ({q})" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "Inserir número de série para novos itens" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "Local de destino do estoque" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "Campo opcional de notas" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "Números de série não podem ser atribuídos a esta peça" @@ -8619,116 +8620,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "Adicionar nota de transação (opcional)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "Item de estoque indisponível" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "Peça selecionada não está na Lista de Materiais" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "Local de destino para o item desinstalado" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "Selecione peça para converter o item de estoque em" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "Peça selecionada não é uma opção válida para conversão" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "Local de destino para item retornado" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "Selecionar itens de estoque para mudar estados" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "Nenhum item de estoque selecionado" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "Parte deve ser comercializável" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "Item é alocado para um pedido de venda" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "Item está alocado a um pedido de produção" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "Cliente para atribuir itens de estoque" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "A empresa selecionada não é um cliente" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "Nodas atribuídas a estoque" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "Uma lista de item de estoque deve ser providenciada" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "Notas de fusão de estoque" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "Permitir fornecedores divergentes" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "Permitir a fusão de itens de estoque de fornecedores diferentes" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "Permitir estado incompatível" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "Permitir a fusão de itens de estoque com estado diferentes" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "Ao menos dois itens de estoque devem ser providenciados" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "Valor da chave primária do Item Estoque" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "Código de estado do item estoque" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "Notas da transação de estoque" @@ -8949,7 +8950,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Este Item do Estoque expirou em %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "Expirado" @@ -9586,7 +9587,7 @@ msgstr "Taxa" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Excluir" @@ -12755,7 +12756,7 @@ msgstr "Pegar" msgid "Add Stock" msgstr "Adicionar Estoque" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "Adicionar" @@ -13394,7 +13395,7 @@ msgstr "Mostrar Notificações" msgid "New Notifications" msgstr "Novas Notificações" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "Administrador" @@ -13567,31 +13568,31 @@ msgstr "Sim" msgid "No" msgstr "Não" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Usuários" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Selecione quais usuários estão atribuídos a este grupo" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Informações pessoais" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Permissões" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "Datas importantes" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13607,15 +13608,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13627,38 +13628,42 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Permissão definida" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Grupo" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Visualizar" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Permissão para ver itens" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Permissão para adicionar itens" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Alterar" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Permissões para editar itens" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Permissão para excluir itens" + +#, python-format +#~ msgid "The BOM for %(part)s has not been validated." +#~ msgstr "A LDM para %(part)s não foi validada." diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po index 0c00c435f1..67f1a3992b 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: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,28 +18,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -48,22 +48,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -75,203 +75,203 @@ msgstr "" msgid "Notes" msgstr "" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -282,72 +282,71 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -363,19 +362,19 @@ msgstr "" msgid "Name" msgstr "" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -400,63 +399,63 @@ msgstr "" msgid "Description" msgstr "" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -464,16 +463,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -481,269 +480,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -855,23 +854,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -883,11 +882,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -895,27 +894,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -923,14 +922,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -944,14 +943,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -981,7 +980,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -997,9 +996,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1027,13 +1026,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1044,7 +1043,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1131,8 +1130,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1141,7 +1140,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1156,7 +1155,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1174,10 +1173,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1198,7 +1197,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1212,8 +1211,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1249,9 +1248,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1265,10 +1264,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1278,7 +1277,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1323,11 +1322,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1339,9 +1338,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1405,8 +1404,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1423,7 +1422,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1431,10 +1430,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1472,9 +1471,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1546,7 +1545,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1582,11 +1581,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1599,7 +1598,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1764,8 +1763,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1802,8 +1801,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1853,7 +1852,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1866,7 +1865,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2022,19 +2021,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2047,1041 +2046,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3093,450 +3092,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3546,76 +3545,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3623,19 +3622,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3646,186 +3645,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3835,12 +3834,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3850,69 +3849,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3925,28 +3924,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3956,27 +3955,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3986,27 +3985,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4068,10 +4067,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4086,7 +4085,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4166,7 +4165,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4189,7 +4188,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4214,7 +4213,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4282,7 +4281,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4331,7 +4330,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4380,8 +4379,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4430,16 +4429,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4472,11 +4471,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4488,7 +4487,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4512,7 +4511,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4520,14 +4519,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4544,7 +4543,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4553,11 +4552,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4571,7 +4570,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4580,192 +4579,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4775,261 +4774,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5041,51 +5040,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5093,24 +5092,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5479,579 +5478,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6063,334 +6062,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6402,299 +6401,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6709,12 +6708,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6826,9 +6824,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7236,7 +7234,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7365,11 +7363,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7377,107 +7375,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7491,11 +7489,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7511,7 +7509,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7519,7 +7517,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7527,19 +7525,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7547,15 +7545,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7568,8 +7566,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7577,49 +7575,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7659,7 +7657,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7675,7 +7673,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7735,113 +7733,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7853,35 +7851,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7893,40 +7891,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7946,103 +7944,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8083,7 +8081,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8109,12 +8107,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8140,7 +8138,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8149,438 +8147,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8596,116 +8594,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8926,7 +8924,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9563,7 +9561,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12732,7 +12730,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13371,7 +13369,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13542,31 +13540,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13582,15 +13580,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13602,38 +13600,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index 5c0473436e..c51ae496ca 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-23 07:46\n" "Last-Translator: \n" "Language-Team: Russian\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "Конечная точка API не обнаружена" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "У пользователя недостаточно прав для просмотра этой модели!" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Значение не указано" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Невозможно преобразовать {original} в {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Недопустимое количество" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Недопустимое количество ({exc})" @@ -47,22 +47,22 @@ msgstr "Недопустимое количество ({exc})" msgid "Error details can be found in the admin panel" msgstr "Подробности об ошибке можно найти в панели администратора" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Введите дату" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Введите дату" msgid "Notes" msgstr "Заметки" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Значение '{name}' отсутствует в формате шаблона" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Предоставленное значение не соответствует требуемому формату: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Введите пароль" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Введите новый пароль" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Подтвердить пароль" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Подтвердите новый пароль" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Старый пароль" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (еще раз)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Подтверждение адреса электронной почты" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Вы должны вводить один и тот же адрес электронной почты." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Указанный основной адрес электронной почты неверен." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Указанный домен электронной почты не утверждён." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Регистрация отключена." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "недопустимое количество" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Пустая строка серийного номера" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Повторяющийся серийный номер" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Неверная последовательность групп: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Серийных номеров не найдено" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Удалить HTML теги из этого значения" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Ошибка соединения" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Сервер ответил неверным кодом статуса" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Произошло исключение" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Сервер ответил неверным значением Контент-Длина" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Изображение слишком большое" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Загрузка изображения превышен максимальный размер" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Удаленный сервер вернул пустой ответ" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Предоставленный URL не является допустимым файлом изображения" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Войти в приложение" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "EMail" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Метаданные должны быть объектом python dict" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Метаданные плагина" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "Поле метаданных JSON для использования внешними плагинами" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Неправильно отформатированный шаблон" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Указан неизвестный ключ формата" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Отсутствует требуемый ключ формата" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Ссылочный идентификатор не может быть пустым" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Ссылка должна соответствовать шаблону {pattern}" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Номер ссылки слишком большой" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Файл не найден" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Вложения" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Выберите файл для вложения" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Выберите файл для вложения" msgid "Link" msgstr "Ссылка" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Ссылка на внешний URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Комментарий" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Пользователь" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "дата загрузки" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Имя файла не должно быть пустым" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Неверная директория вложений" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Имя файла содержит запрещенные символы '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Отсутствует расширение для имени файла" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Вложение с таким именем файла уже существует" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Ошибка переименования файла" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Повторяющиеся имена не могут существовать под одним и тем же родителем" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Неверный выбор" msgid "Name" msgstr "Название" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Название" msgid "Description" msgstr "Описание" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Описание (необязательно)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "родитель" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Путь" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Описание обновления (необязательное)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Данные штрих-кода" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Данные стороннего штрих-кода" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Хэш штрих-кода" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Уникальный хэш данных штрих-кода" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Обнаружен существующий штрих-код" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Ошибка сервера" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Сервер зарегистрировал ошибку." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Должно быть действительным номером" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Валюта" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Выберите валюту из доступных вариантов" @@ -463,16 +462,16 @@ msgstr "Выберите валюту из доступных вариантов msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -483,269 +482,269 @@ msgstr "" "\n" "Чтобы получить доступ, используйте функцию сброса пароля (по адресу https://{domain})." -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Имя файла" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Неверное значение" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Файл данных" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Выберите файл данных для загрузки" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Неподдерживаемый тип файла" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Файл слишком большой" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Столбцы в файле не найдены" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Строки данных в файле не найдены" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Строки данных в файле не найдены" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Столбцы данных не предоставлены" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Отсутствует обязательный столбец: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Повторяющийся столбец: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "ССЫЛКА файла изображения на удаленном сервере" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Загрузка изображений с удаленного URL-адреса не включена" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Чешский" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Датский" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Немецкий" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Греческий" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Английский" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Испанский" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Испанский (Мексика)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Фарси / Персидский" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Финский" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Французский" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Хинди" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Венгерский" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Итальянский" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Японский" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Корейский" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Голландский" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Польский" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Португальский" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Португальский (Бразильский диалект)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Русский" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Словенский" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Шведский" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Тайский" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Китайский (Упрощенный)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Китайский (Традиционный)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Проверка фонового работника не удалась" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Сервер электронной почты не настроен" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Ошибка проверки состояния системы InvenTree" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Ожидаемый" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Размещены" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Готово" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Отменено" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Потерян" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Возвращено" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Выполняется" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Доставлено" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "Да" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Требует внимания" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Поврежденный" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Разрушено" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Отклоненный" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "Карантин" @@ -857,23 +856,23 @@ msgstr "Возвращено от клиента" msgid "Production" msgstr "Продукция" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Возврат" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Починить" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Заменить" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Возврат" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Отклонить" @@ -885,11 +884,11 @@ msgstr "Неверная физическая единица" msgid "Not a valid currency code" msgstr "Неверный код валюты" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Значение перегрузки не должно быть отрицательным" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Перегрузка не может превысить 100%" @@ -897,27 +896,27 @@ msgstr "Перегрузка не может превысить 100%" msgid "Invalid value for overage" msgstr "Неверное значение для возврата средств" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Редактировать информацию о пользователе" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Установить пароль" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Пароли должны совпадать" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Указан неверный пароль" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Информация о системе" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "О программе InvenTree" @@ -925,14 +924,14 @@ msgstr "О программе InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Сборка должна быть отменена перед удалением" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Расходники" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -946,14 +945,14 @@ msgstr "Необязательно" msgid "Tracked" msgstr "Отслеживается" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Выделено" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -983,7 +982,7 @@ msgstr "Порядок сборки" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Заказы на сборку" @@ -999,9 +998,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Ссылка на заказ" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1029,13 +1028,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "ПорядокСборки, которому выделяется эта сборка" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1046,7 +1045,7 @@ msgstr "ПорядокСборки, которому выделяется эта #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1133,8 +1132,8 @@ msgstr "Статус сборки" msgid "Build status code" msgstr "Код статуса сборки" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Код партии" @@ -1143,7 +1142,7 @@ msgstr "Код партии" msgid "Batch code for this build output" msgstr "Код партии для этого вывода сборки" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1158,7 +1157,7 @@ msgstr "Целевая дата завершения" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Дата завершения" @@ -1176,10 +1175,10 @@ msgid "User who issued this build order" msgstr "Пользователь, выпустивший этот заказ на сборку" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1200,7 +1199,7 @@ msgstr "Пользователь, ответственный за сборку #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1214,8 +1213,8 @@ msgstr "Приоритет сборки" msgid "Priority of this build order" msgstr "Приоритет этого порядка сборки заказа" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1251,9 +1250,9 @@ msgid "Build output does not match Build Order" msgstr "Вывод сборки не совпадает с порядком сборки" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" @@ -1267,10 +1266,10 @@ msgstr "Построить объект" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1280,7 +1279,7 @@ msgstr "Построить объект" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1325,11 +1324,11 @@ msgstr "Элемент сборки должен указать вывод сб msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Выделенное количество ({q}) не должно превышать доступное количество на складе ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Предмет на складе перераспределен" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Выделенное количество должно быть больше нуля" @@ -1341,9 +1340,9 @@ msgstr "Количество должно быть 1 для сериализов msgid "Selected stock item does not match BOM line" msgstr "Выбранный товар на складе не соответствует строке BOM" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1407,8 +1406,8 @@ msgstr "Для отслеживаемых деталей должно быть msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Требуется целое количество, так как материал содержит отслеживаемые детали" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Серийные номера" @@ -1425,7 +1424,7 @@ msgstr "Автоматически выделить серийные номер msgid "Automatically allocate required items with matching serial numbers" msgstr "Автоматически выделять необходимые элементы с соответствующими серийными номерами" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "Следующие серийные номера уже существуют или недействительны" @@ -1433,10 +1432,10 @@ msgstr "Следующие серийные номера уже существу msgid "A list of build outputs must be provided" msgstr "Необходимо представить список результатов сборки" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1474,9 +1473,9 @@ msgid "Location for completed build outputs" msgstr "Расположение для завершенных выходов сборки" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1548,7 +1547,7 @@ msgstr "Подтвердите, что товары на складе не бы msgid "Required stock has not been fully allocated" msgstr "Необходимые запасы не были выделены полностью" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Принять незавершенные" @@ -1584,11 +1583,11 @@ msgstr "Сборка Линии Предмет" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part должна указывать на ту же часть, что и порядок сборки" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "Компонент должен быть в наличии" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Превышено доступное количество ({q})" @@ -1601,7 +1600,7 @@ msgstr "Вывод сборки должен быть определен для msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Вывод сборки не может быть указан для распределения неотслеживаемых частей" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Необходимо указать пункты распределения" @@ -1766,8 +1765,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1804,8 +1803,8 @@ msgid "Completed Outputs" msgstr "Завершенные результаты" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1855,7 +1854,7 @@ msgstr "Складской источник" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Назначение" @@ -1868,7 +1867,7 @@ msgstr "Место назначения не указано" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2024,19 +2023,19 @@ msgstr "Ошибка чтения файла (неверный размер)" msgid "Error reading file (data could be corrupted)" msgstr "Ошибка чтения файла (данные могут быть повреждены)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Файл" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Выберите файл для загрузки" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "Выберите {name} файл для загрузки" @@ -2049,1041 +2048,1041 @@ msgstr "Обновлено" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Требуется перезапуск" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Название инстанса" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Название компании" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Внутреннее название компании" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "Базовая ссылка" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "Базовая ссылка для экземпляра сервера" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Валюта по умолчанию" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "дней" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Скачать по ссылке" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Разрешить загрузку удаленных изображений и файлов по внешнему URL" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Ограничение размера загрузки" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Максимально допустимый размер загрузки для удалённого изображения" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "User-Agent, используемый для загрузки из URL" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Позволяет переопределить user-Agent, используемый для загрузки изображений и файлов с внешнего URL (оставьте пустым по умолчанию)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Требуется подтверждение" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Требовать явное подтверждение пользователя для определенного действия." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Глубина дерева" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Глубина дерева по умолчанию для просмотра дерева. Глубокие уровни загружены по мере необходимости." -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Интервал проверки обновлений" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "Как часто проверять наличие обновлений (установите ноль чтобы выключить)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Автоматическое резервное копирование" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Включить автоматическое резервное копирование базы данных и медиа-файлов" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Интервал автосохранения" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Укажите количество дней между событиями автоматического резервного копирования" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "Интервал удаления задачи" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "Результаты фоновых задач будут удалены после указанного количества дней" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "Интервал удаления журнала ошибок" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "Журналы ошибок будут удалены после указанного количества дней" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "Интервал удаления уведомления" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Уведомления пользователя будут удалены после указанного количества дней" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Поддержка штрих-кодов" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Задержка сканирования штрих-кода" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Время задержки обработки штрих-кода" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Поддержка веб-камер штрих-кодов" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "Разрешить сканирование штрих-кода через веб-камеру в браузере" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "Ревизия деталей" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Разрешить повторяющиеся IPN" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Разрешить редактирование IPN" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Шаблон" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "По умолчанию детали являются шаблонами" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Сборка" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Компонент" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Можно купить" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Можно продавать" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Отслеживание" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "По умолчанию детали являются отслеживаемыми" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Виртуальная" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Показывать связанные детали" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Исходные данные о поставщике" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Использовать расценки из ручного ввода данных о запасах для расчета цен" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Режим отладки" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "Включить возврат заказов" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "Редактировать завершенные заказы на покупку" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Необходимо указать EMail" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Пользователи должны использовать многофакторную безопасность." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Проверять плагины при запуске" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Показывать детали, на которые включены уведомления" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Показывать детали, на которые включены уведомления, на главной странице" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Показывать категории, на которые включены уведомления" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Показывать категории, на которые включены уведомления, на главной странице" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Показывать последние детали" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "Показывать последние детали на главной странице" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Показывать непроверенные BOMы" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "Показывать BOMы, ожидающие проверки, на главной странице" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Показывать изменившиеся складские запасы" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "Показывать единицы хранения с недавно изменившимися складскими запасами на главной странице" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Показывать низкие складские запасы" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Показывать единицы хранения с низкими складскими запасами на главной странице" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Показывать закончившиеся детали" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Показывать закончившиеся на складе единицы хранения на главной странице" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Показывать требуемые детали" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "Показывать требуемые для сборки единицы хранения на главной странице" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Показывать просрочку" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Показывать единицы хранения с истёкшим сроком годности на главной странице" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Показывать залежалые" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Показывать залежалые единицы хранения на главной странице" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Показывать незавершённые сборки" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Показывать незавершённые сборки на главной странице" @@ -3095,450 +3094,450 @@ msgstr "Показывать просроченные сборки" msgid "Show overdue builds on the homepage" msgstr "Показывать просроченные сборки на главной странице" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Искать заказы на сборку" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "Отображать заказы на сборку в окне предварительного просмотра поиска" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Поиск заказов на продажу" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Поиск возвращенных заказов" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Планирование деталей" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Запасы деталей" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Цена" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Активный" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3548,76 +3547,76 @@ msgstr "" msgid "Image" msgstr "Изображение" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Загрузить файл" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3625,19 +3624,19 @@ msgstr "Загрузить файл" msgid "Match Fields" msgstr "Поля Соответствия" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Детали импортированы" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3648,186 +3647,186 @@ msgstr "Детали импортированы" msgid "Previous Step" msgstr "Предыдущий шаг" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Описание компании" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "Описание компании" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Сайт" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Сайт компании" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Телефон" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Контактный телефон" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Контактный EMail" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Контакт" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Контактное лицо" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Ссылка на описание компании" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "покупатель" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Вы продаёте детали этой компании?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "поставщик" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Вы закупаете детали у этой компании?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "производитель" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Является ли компания производителем деталей?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Для этой компании используется валюта по умолчанию" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Компания" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "Выберите компанию" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Базовая деталь" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Выберите деталь" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3837,12 +3836,12 @@ msgstr "Выберите деталь" msgid "Manufacturer" msgstr "Производитель" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Выберите производителя" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3852,69 +3851,69 @@ msgstr "Выберите производителя" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Код производителя" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "Ссылка на сайт производителя" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Деталь производителя" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Наименование параметра" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Значение" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Значение параметра" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Ед.изм" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Единицы измерения" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3927,28 +3926,28 @@ msgstr "" msgid "Supplier" msgstr "Поставщик" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Выберите поставщика" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Код поставщика" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Выберите производителя части" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "Ссылка на сайт поставщика" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3958,27 +3957,27 @@ msgstr "" msgid "Note" msgstr "Заметка" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "базовая стоимость" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Упаковка" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3988,27 +3987,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4070,10 +4069,10 @@ msgstr "Скачать изображение по ссылке" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4088,7 +4087,7 @@ msgstr "Покупатель" msgid "Uses default currency" msgstr "Использовать валюту по умолчанию" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4168,7 +4167,7 @@ msgstr "Склад поставщика" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Заказы на закупку" @@ -4191,7 +4190,7 @@ msgstr "Новый заказ на закупку" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Заказы на продажу" @@ -4216,7 +4215,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4284,7 +4283,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Поставщики" @@ -4333,7 +4332,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4382,8 +4381,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4432,16 +4431,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Детали на складе" @@ -4474,11 +4473,11 @@ msgstr "Компании" msgid "New Company" msgstr "Новая компания" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4490,7 +4489,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4514,7 +4513,7 @@ msgstr "Высота [мм]" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4522,14 +4521,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Фильтры" @@ -4546,7 +4545,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4555,11 +4554,11 @@ msgstr "" msgid "Total Price" msgstr "Общая стоимость" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4573,7 +4572,7 @@ msgstr "" msgid "Purchase Order" msgstr "Заказ на закупку" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4582,192 +4581,192 @@ msgstr "Заказ на закупку" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "Контакт не соответствует выбранной компании" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "Описание заказа (дополнительно)" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "Выберите код проекта для этого заказа" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Пользователь или группа, ответственная за этот заказ" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Компания, в которой детали заказываются" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Компания, которой детали продаются" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "Описание товара (необязательно)" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Контекст" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "Дополнительный контекст для этой строки" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4777,261 +4776,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Закупочная цена" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Цена продажи" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Информация об отслеживании доставки" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Укажите количество на складе" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "Выберите товар возврата от клиента" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Курс покупки валюты" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "Выберите место назначения для полученных товаров" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "Введите код партии для поступающих единиц хранения" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Введите серийные номера для входящих товаров на складе" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "Для отслеживаемых деталей должно быть указано целочисленное количество" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5043,51 +5042,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "Курс продажи валюты" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Введите серийные номера для выделения" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5095,24 +5094,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5481,579 +5480,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "Заказ на продажу не найден" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Цена не найдена" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "Артикул" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Наименование детали" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "Описание детали" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Версия" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Ключевые слова" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "Код категории" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "Название категории" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Разновидность" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Минимальный запас" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "На складе" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "В заказе" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Используется в" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Путь к категории" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Детали" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "IPN" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "Необходимо выбрать эту опцию" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Место хранения по умолчанию" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Доступный запас" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Категория детали" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Категория детали" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Место хранения по умолчанию для деталей этой категории" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Структура" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Детали не могут быть непосредственно отнесены к структурной категории, но могут быть отнесены к дочерним категориям." -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Ключевые слова по умолчанию" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Ключевые слова по умолчанию для деталей этой категории" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Иконка" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Иконка (необязательно)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Наименование детали" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "Шаблон" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "Эта деталь является шаблоном для других деталей?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "Эта деталь является разновидностью другой детали?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "Описание детали (необязательно)" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "Ключевые слова для улучшения видимости в результатах поиска" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Категория" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Категория" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "Внутренний код детали" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "Версия детали" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "Где обычно хранится эта деталь?" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "Срок действия по умолчанию" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "Срок годности (в днях) для товаров на складе этой позиции" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "Минимально допустимый складской запас" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "Единицы измерения этой детали" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "Может ли эта деталь быть создана из других деталей?" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "Может ли эта деталь использоваться для создания других деталей?" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "Является ли каждый экземпляр этой детали уникальным, обладающим серийным номером?" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "Может ли эта деталь быть закуплена у внешних поставщиков?" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "Может ли эта деталь быть продана покупателям?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "Эта деталь актуальна?" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "Эта деталь виртуальная, как программный продукт или лицензия?" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6065,334 +6064,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "Тестовые шаблоны могут быть созданы только для отслеживаемых деталей" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Название теста" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "Введите имя для теста" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "Введите описание для этого теста" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "Родительская деталь" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Шаблон параметра" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "Артикул или наименование детали" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "Значение IPN" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "BOM Компонент" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "Выберите родительскую деталь" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Эта позиция - расходник. (она не отслеживается в заказах на сборку)" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Разрешить разновидности" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "Часть 1" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "Часть 2" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "Выберите связанную часть" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Валюта покупки этой единицы хранения" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "Не выбран ни один элемент" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "Выберите категорию" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6404,299 +6403,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "Код производителя" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Дублировать деталь" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "Копировать параметры категории" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "Копировать шаблоны параметров из выбранной категории деталей" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "Подходящая деталь не найдена" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Некорректное количество" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6711,12 +6710,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6828,9 +6826,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7238,7 +7236,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7367,11 +7365,11 @@ msgstr "Создать новую разновидность детали" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Неизвестная база данных" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7379,107 +7377,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Изображение детали не найдено" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Действие не указано" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Соответствующее действие не найдено" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Не найдено совпадений для данных штрих-кода" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Найдено совпадение по штрих-коду" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7493,11 +7491,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7513,7 +7511,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7521,7 +7519,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7529,19 +7527,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7549,15 +7547,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7570,8 +7568,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7579,49 +7577,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "Включить уведомления по электронной почте" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "Разрешить отправку уведомлений о событиях по электронной почте" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7661,7 +7659,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7677,7 +7675,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7737,113 +7735,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "Автор не найден" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7855,35 +7853,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "Исходная ссылка" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7895,40 +7893,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7948,103 +7946,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Название шаблона" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "Файл шаблона отчёта" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8085,7 +8083,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8111,12 +8109,12 @@ msgid "Test Results" msgstr "Результаты проверки" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "Проверка" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8142,7 +8140,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8151,438 +8149,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "Код места хранения" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Путь местоположения" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "Код детали поставщика" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "Код сборки" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "Необходимо указать количество" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Место хранения" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Места хранения" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Выберите владельца" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Родительская единица хранения" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "Базовая деталь" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "Выберите соответствующего поставщика части для этого товара на складе" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "Код партии для этой единицы хранения" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "Количество на складе" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "Исходная сборка" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "Удалить при обнулении" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "Удалить эту единицу хранения при обнулении складского запаса" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "Деталь не является отслеживаемой" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Серийные номера уже существуют" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "Введите количество товаров на складе для сериализации" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "Введите серийные номера для новых элементов" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8598,116 +8596,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "Выбранная деталь отсутствует в спецификации" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "Выберите товары на складе для изменения статуса" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "Не выбрано ни одного товара на складе" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "Выбранная компания не является покупателем" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8928,7 +8926,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9565,7 +9563,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Удалить" @@ -12734,7 +12732,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13373,7 +13371,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13544,31 +13542,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Права доступа" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13584,15 +13582,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13604,38 +13602,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Права доступа" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Вид" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Разрешение на просмотр элементов" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Разрешение на добавление элементов" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Разрешение на редактирование элементов" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Разрешение на удаление элементов" diff --git a/InvenTree/locale/sl/LC_MESSAGES/django.po b/InvenTree/locale/sl/LC_MESSAGES/django.po index b12255a26f..18eb87d5e6 100644 --- a/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Slovenian\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API vmesnik ni najden" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Uporabnik nima dovoljenja pogleda tega modela" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Vrednost ni vnesena" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Ni mogoče pretvoriti {original} v {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Vnesena napačna količina" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Vnesena napačna količina ({exc})" @@ -47,22 +47,22 @@ msgstr "Vnesena napačna količina ({exc})" msgid "Error details can be found in the admin panel" msgstr "Napaka, podrobnosti vidne v pogledu administratorja" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Vnesi datum" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Vnesi datum" msgid "Notes" msgstr "Zapiski" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Vrednost '{name}' ni v predpisanem formatu" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Podana vrednost se ujema s predpisanim vzorcem: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Vnesite geslo" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Vnesite novo geslo" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Potrdite geslo" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Potrdite novo geslo" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Staro geslo" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Ponovnite e-pošto" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Potrdite e-pošto" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "E-pošti se morata ujemati" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Podana epošta ni veljavna." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Domena epošte ni podprta." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Registracija je onemogočena." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Podana napačna količina" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Prazno polje serijske številke" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Dvojna serijska številka" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Neveljavni doseg skupine: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Doseg skupine {group} presega dovoljene količine ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nepravilno zaporedje skupine: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Serijske številke niso najdene" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Število unikatnih serijskih številk ({len(serials)}) se mora ujemati s količino ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Odstranite oznako HTML iz te vrednosti" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Napaka povezave" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Odziv serverja: napravilni status kode" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Pojavila se je izjema" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Odziv serverja: napačna dolžina vrednosti" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Prevelika velikost slike" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Prenos slike presegel največjo velikost" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Oddaljeni server vrnil prazen odziv" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Podani URL ni veljavna slikovna datoteka" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Prijave se v aplikacijo" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "E-pošta" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Nepravilno nastavljen vzorec" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Nastavljen neprepoznan ključ formata" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Manjka obvezen ključ formata" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Referenčno polje ne sme biti prazno" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Referenca se mora ujemati s vzorcem" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Referenčna številka prevelika" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Manjka datoteka" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Manjka zunanja povezava" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Priloga" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Izberite prilogo" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Izberite prilogo" msgid "Link" msgstr "Povezava" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Zunanja povezava" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Komentar" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Komentar datoteke" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Uporabnik" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "naloži datum" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Ime ne sme biti prazno" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Neveljavna mapa prilog" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Ime datoteke vsebuje neveljavni znak '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Datoteki manjka končnica" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Priloga s tem imenom že obstaja" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Napaka pri preimenovanju datoteke" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Nedovoljena izbira" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Nedovoljena izbira" msgid "Name" msgstr "Ime" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Ime" msgid "Description" msgstr "Opis" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Opis (opcijsko)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "nadrejen" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Pot" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Podatki čtrne kode" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Podatki črtne kode tretje osebe" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Oznaka črtne kode" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Enolična oznaka podatkov črtne kode" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Črtna koda že obstaja" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Napaka strežnika" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Zaznana napaka na strežniku." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Mora biti veljavna številka" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Ime datoteke" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Neveljavna vrednost" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Podatki datoteke" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Izberite datoteke za naložiti" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Nepodprta vrsta datotek" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Datoteka je prevelika" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "V datoteki ni bilo najdenih stolpcev" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "V datoteki ni bilo njadenih vrstic" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Niso bile podane vrste s podatki" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Niso bili podani stolpci s podatki" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Manjka obvezni stolpec: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dvojni stolpec: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "Povezava do oddaljene slike" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Prenos slik iz oddaljene povezave ni omogočen" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Češko" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Danščina" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Nemščina" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Grščina" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Angleščina" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Španščina" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Španščina (Mehiško)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Perzijsko" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Francoščina" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebrejščina" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Madžarščina" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italijanščina" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japonščina" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Korejščina" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Nizozemščina" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norveščina" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Poljščina" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugalščina" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugalščina (Brazilsko)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Ruščina" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Slovenščina" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Švedščina" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Tajščina" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turščina" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamščina" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Nadzor dela v ozadju neuspel" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Zaledje e-pošte ni nastavljeno" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Preverjanje zdravja sistema InvenTree neuspelo" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "V teku" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Postavljeno" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Končano" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Preklicano" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Izgubljeno" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Vrnjeno" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Poslano" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Potrebna pozornost" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Poškodovano" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Uničeno" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Zavrnjeno" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "Dano v karanteno" @@ -854,23 +853,23 @@ msgstr "Vrnjeno od stranke" msgid "Production" msgstr "Proizvodnja" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "Neveljavna oznaka valute" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Prestara vrednost ne sme biti negativna" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Prestarost ne sme presegati 100%" @@ -894,27 +893,27 @@ msgstr "Prestarost ne sme presegati 100%" msgid "Invalid value for overage" msgstr "Neveljavna vrednost za prestarost" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Uredite informacije o uporabniku" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Nastavite geslo" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Polja z geslom se morajo ujemati" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Vnešeno nepravilno geslo" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Sistemske informacije" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "O InvenTree" @@ -922,14 +921,14 @@ msgstr "O InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "Nalog izgradnje" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Nalogi izgradnje" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Referenca naloga izgradnje" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "Status izgradnje" msgid "Build status code" msgstr "Koda statusa izgradnje" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Številka serije" @@ -1140,7 +1139,7 @@ msgstr "Številka serije" msgid "Batch code for this build output" msgstr "Številka serije za to izgradnjo" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "Rok dokončanja" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Rok končanja izdelave. Izdelava po tem datumu bo v zamudi po tem datumu." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Datom končanja" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Uporabnik, ki je izdal nalog za izgradnjo" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "Izgradnja se ne ujema s nalogom izdelave" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "Izdelana postavka mora imeti izgradnjo, če je glavni del označen kot s msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Preveč zaloge je prestavljene" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Prestavljena količina mora biti večja od 0" @@ -1338,9 +1337,9 @@ msgstr "Količina za zalogo s serijsko številko mora biti 1" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,111 +7374,111 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Stock item allocated to sales order" msgstr "Količina zaloge za prestavljanje za izgradnjo" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "Edit User Information" msgid "Not enough information" msgstr "Uredite informacije o uporabniku" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7494,11 +7492,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7514,7 +7512,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7522,7 +7520,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7530,19 +7528,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7550,19 +7548,19 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 #, fuzzy #| msgid "This build output has already been completed" msgid "Shipment has already been delivered" msgstr "Ta sestava je že zaključena" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Quantity to allocate" msgstr "Količina zaloge za prestavljanje za izgradnjo" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7575,8 +7573,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7584,49 +7582,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7666,7 +7664,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7682,7 +7680,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7742,113 +7740,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7860,35 +7858,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7900,40 +7898,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7953,103 +7951,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8090,7 +8088,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8116,12 +8114,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8147,7 +8145,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8156,438 +8154,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8603,116 +8601,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8933,7 +8931,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9570,7 +9568,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12739,7 +12737,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13378,7 +13376,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13549,31 +13547,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13589,15 +13587,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13609,38 +13607,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/sr/LC_MESSAGES/django.po b/InvenTree/locale/sr/LC_MESSAGES/django.po index ff531c9b99..584accf66c 100644 --- a/InvenTree/locale/sr/LC_MESSAGES/django.po +++ b/InvenTree/locale/sr/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-19 05:36\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API krajnja tačka nije pronađena" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Korisnik nema dozvolu za pregled ovog modela" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Nije navedena vrednost" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Nije moguće konvertovati {original} u {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Isporučena nevažeća količina" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Isporučena nevažeća količina ({exc})" @@ -47,22 +47,22 @@ msgstr "Isporučena nevažeća količina ({exc})" msgid "Error details can be found in the admin panel" msgstr "Detalji o grešci se mogu naći u admin sekciji" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Unesite datum" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Unesite datum" msgid "Notes" msgstr "Napomene" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Vrednost '{name}' se ne pojavljuje u formatu obrasca" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Navedena vrednost ne odgovara traženom obrascu: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Unesite lozinku" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Unesite novu lozinku" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Potvrdite lozinku" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Potvrdite novu lozinku" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Stara lozinka" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "E-pošta (ponovo)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Potvrda adrese e-pošte" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Svaki put morate upisati istu e-poštu." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Navedena primarna adresa e-pošte nije važeća." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Navedeni domen adrese e-pošte nije prihvaćen." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Registracija je onemogućena." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Isporučena nevažeća količina" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Serijski broj nije popunjen" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Dupliciraj serijski broj" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Nevažeći raspon grupe: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Raspon grupe {group} prelazi dozvoljenu količinu ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Nevažeća sekvenca grupe: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Nisu pronađeni serijski brojevi" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Broj jedinstvenih serijskih brojeva ({len(serials)}) mora odgovarati količini ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Uklonite HTML oznake iz ove vrednosti" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Greška u povezivanju" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Server je odgovorio nevažećim statusnim kodom" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Došlo je do izuzetka" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Server je odgovorio nevažećom vrednošću dužina sadržaja" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Veličina slike je prevelika" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Preuzimanje slike premašilo je maksimalnu veličinu" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Udaljeni server vratio je prazan odgovor" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Navedeni URL nije važeća slikovna datoteka" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Ulogujte se u aplikaciju" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "E-Pošta" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Metapodaci moraju biti \"python dict\" objekat" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Metapodaci dodatka" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "Polje metapodataka JSON, za korištenje eksternih dodataka" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Neispravno formatiran obrazac" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Naveden je ključ nepoznatog formata" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Nedostaje potreban ključ formata" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Polje za reference ne može biti prazno" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Referenca mora odgovarati traženom obrascu" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Broj reference je predugačak" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Nedostaje datoteka" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Nedostaje eksterni link" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Prilog" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Izaberite datoteku za prilog" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Izaberite datoteku za prilog" msgid "Link" msgstr "Link" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Link za eksterni URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Komentar" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Datoteka komentara" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Korisnik" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "dadajte datoteku" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Ime datoteke ne sme biti prazno" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Direktorijum nevažećih datoteka" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Ime datoteke sadrži neprihvatljivi karakter '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Imenu datoteke nedostaje ekstenzija" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Prilog s ovim nazivom datoteke već postoji" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Greška pri preimenovanju datoteke" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Dvostruka imena ne mogu postojati pod istom nadredjenom grupom" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Nevažeći izvor" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Nevažeći izvor" msgid "Name" msgstr "Ime" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Ime" msgid "Description" msgstr "Opis" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Opis (Opciono)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "nadređeni" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Putanja" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Zabeleške (Opciono)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Podaci sa barkoda" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Podaci sa barkoda trećih lica" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Heš barkoda" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Jedinstveni hash barkoda" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Postojeći barkod pronađen" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Greška servera" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Server je zabležio grešku." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Mora biti važeći broj" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Odaberite valutu među dostupnim opcijama" @@ -463,16 +462,16 @@ msgstr "Odaberite valutu među dostupnim opcijama" msgid "You do not have permission to change this user role." msgstr "Nemate dozvolu za promenu ove korisničke uloge." -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "Samo superkorisnici mogu kreirati nove korisnike" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "Dobrodošli u {current_site.name}" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -483,269 +482,269 @@ msgstr "" "\n" "Koristite funkciju poništavanja lozinke da biste dobili pristup (na https://{domain})." -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Ime datoteke" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Nevažeća vrednost" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Datoteka" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Odaberite datoteku za učitavanje" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Nije podržan tip datoteke" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Prevelika datoteka" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Nisu pronađene kolone podataka u datoteci" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Nisu pronađeni redovi podataka u datoteci" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Nisu navedeni redovi podataka" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Nisu obezbeđene kolone podataka" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Nedostaje potrebna kolona: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicirana kolona: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "Udaljena slika" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL udaljene slike" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Preuzimanje slika s udaljenog URL-a nije omogućeno" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "Bugarski" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Češki" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Danski" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Nemački" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Grčki" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Engleski" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Španski" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Španski (Meksiko)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Persijski" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Finski" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Francuski" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Jevrejski" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Hindu" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Mađarski" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italijanski" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japanski" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Korejski" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Holandski" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norveški" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Poljski" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugalski" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugalski (Brazil)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Ruski" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Slovenski" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "Srpski" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Švedski" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Tajlandski" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turski" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vijetnamski" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Kineski (Uprošćeni)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Kineski (Tradicionalni)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Provera pozadinskog radnika nije uspjela" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Pozadina e-pošte nije konfigurirana" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Provere integriteta sistema InvenTree nije uspela" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Na čekanju" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Postavljen" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Gotovo" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Otkazano" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Izgubljeno" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Vraćeno" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "U progresu" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Poslato" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "Uredu" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Potrebna pažnja" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Oštećeno" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Uništeno" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Odbijeno" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "U karantinu" @@ -857,23 +856,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -885,11 +884,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -897,27 +896,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -925,14 +924,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -946,14 +945,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -983,7 +982,7 @@ msgstr "Nalog za izradu" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Nalozi za izradu" @@ -999,9 +998,9 @@ msgstr "Deo u nalogu za izradu ne može se izmeniti" msgid "Build Order Reference" msgstr "Reference naloga za pravljenje" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1029,13 +1028,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1046,7 +1045,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1133,8 +1132,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1143,7 +1142,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1158,7 +1157,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1176,10 +1175,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1200,7 +1199,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1214,8 +1213,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1251,9 +1250,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1267,10 +1266,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1280,7 +1279,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1325,11 +1324,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1341,9 +1340,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1407,8 +1406,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1425,7 +1424,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1433,10 +1432,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1474,9 +1473,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1548,7 +1547,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1584,11 +1583,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1601,7 +1600,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1766,8 +1765,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1804,8 +1803,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1855,7 +1854,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1868,7 +1867,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2024,19 +2023,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2049,1041 +2048,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3095,450 +3094,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3548,76 +3547,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3625,19 +3624,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3648,186 +3647,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3837,12 +3836,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3852,69 +3851,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3927,28 +3926,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3958,27 +3957,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3988,27 +3987,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4070,10 +4069,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4088,7 +4087,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4168,7 +4167,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4191,7 +4190,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4216,7 +4215,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4284,7 +4283,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4333,7 +4332,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4382,8 +4381,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4432,16 +4431,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4474,11 +4473,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4490,7 +4489,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4514,7 +4513,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4522,14 +4521,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4546,7 +4545,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4555,11 +4554,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4573,7 +4572,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4582,192 +4581,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4777,261 +4776,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5043,51 +5042,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5095,24 +5094,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5481,579 +5480,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6065,334 +6064,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6404,299 +6403,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6711,12 +6710,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6828,9 +6826,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7238,7 +7236,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7367,11 +7365,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7379,107 +7377,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7493,11 +7491,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7513,7 +7511,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7521,7 +7519,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7529,19 +7527,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7549,15 +7547,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7570,8 +7568,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7579,49 +7577,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7661,7 +7659,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7677,7 +7675,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7737,113 +7735,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7855,35 +7853,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7895,40 +7893,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7948,103 +7946,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8085,7 +8083,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8111,12 +8109,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8142,7 +8140,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8151,438 +8149,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8598,116 +8596,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8928,7 +8926,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9565,7 +9563,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12734,7 +12732,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13373,7 +13371,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13544,31 +13542,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13584,15 +13582,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13604,38 +13602,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 7de40380ce..612bc68af9 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:45\n" "Last-Translator: \n" "Language-Team: Swedish\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API-slutpunkt hittades inte" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Användaren har inte behörighet att se denna modell" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Inget värde angivet" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Kunde inte konvertera {original} till {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Ogiltigt antal angivet" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Ogiltigt antal angivet ({exc})" @@ -47,22 +47,22 @@ msgstr "Ogiltigt antal angivet ({exc})" msgid "Error details can be found in the admin panel" msgstr "Information om felet finns under Error i adminpanelen" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Ange datum" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Ange datum" msgid "Notes" msgstr "Anteckningar" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Värdet '{name}' visas inte i mönsterformat" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Det angivna värdet matchar inte det obligatoriska mönstret: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Ange lösenord" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Ange nytt lösenord" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Bekräfta lösenord" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Bekräfta nytt lösenord" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Tidigare lösenord" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "E-post (igen)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Bekräfta e-postadress" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Du måste ange samma e-post varje gång." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Den angivna primära e-postadressen är inte giltig." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Den angivna e-postdomänen är inte godkänd." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Registrering är stängd." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Ogiltigt antal angivet" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Tom serienummersträng" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Serienummret finns redan" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Inga serienummer hittades" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Ta bort HTML-taggar från detta värde" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Anslutningsfel" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Servern svarade med ogiltig statuskod" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Undantag inträffade" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Servern svarade med ogiltigt innehållslängdsvärde" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Bilden är för stor" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Nedladdning av bilder överskred maximal storlek" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Fjärrservern returnerade tomt svar" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Angiven URL är inte en giltig bildfil" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "E-post" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Felaktigt formaterat mönster" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Okänd formatnyckel angiven" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Obligatorisk formatnyckel saknas" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Textfältet kan inte lämnas tomt" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Referensen måste matcha obligatoriskt mönster" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Referensnumret är för stort" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Saknad fil" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Extern länk saknas" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Bilaga" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Välj fil att bifoga" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Välj fil att bifoga" msgid "Link" msgstr "Länk" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Länk till extern URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Kommentar" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Fil kommentar" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Användare" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "uppladdningsdatum" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Filnamnet får inte vara tomt" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Ogiltig katalog för bilaga" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Filnamnet innehåller ogiltiga tecken '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Filnamn saknar ändelse" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Det finns redan en bilaga med detta filnamn" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Fel vid namnbyte av fil" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Ogiltigt val" msgid "Name" msgstr "Namn" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Namn" msgid "Description" msgstr "Beskrivning" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Beskrivning (valfritt)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "överordnad" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Sökväg" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Streckkodsdata" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Befintlig streckkod hittades" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Serverfel" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Valuta" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Välj valuta från tillgängliga alternativ" @@ -463,16 +462,16 @@ msgstr "Välj valuta från tillgängliga alternativ" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "Välkommen till {current_site.name}" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Filnamn" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Ogiltigt värde" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Välj fil för uppladdning" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Filtypen stöds inte" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Filen är för stor" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Inga kolumner hittades i filen" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Inga rader hittades i filen" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Inga rader angivna" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Inga datakolumner har angetts" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Saknar obligatorisk kolumn: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicerad kolumn: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL för fjärrbildsfil" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Tjeckiska" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Danska" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Tyska" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Grekiska" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Engelska" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Spanska" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Spanska (Mexikanska)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsi / Persiska" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Finska" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Franska" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Hebreiska" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Hindi" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Ungerska" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Italienska" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japanska" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Koreanska" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norska" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polska" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portugisiska" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portugisiska (brasiliansk)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Ryska" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Slovenska" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Svenska" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Thailändska" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Kinesiska (Förenklad)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Kinesiska (Traditionell)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Kontroll av bakgrundsarbetare misslyckades" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Backend för e-post är inte konfigurerad" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InvenTree systemhälsokontroll misslyckades" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Väntar" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Placerad" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Slutför" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Avbruten" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Förlorad" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Återlämnad" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Pågående" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Skickad" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "OBS!" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Skadad" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Förstörd" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Avvisad" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "I karantän" @@ -854,23 +853,23 @@ msgstr "Returnerad från kund" msgid "Production" msgstr "Produktion" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Reparera" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Ersätt" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Återbetala" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Avvisa" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "Inte en giltig valutakod" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Överskott värde får inte vara negativt" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Överskott får inte överstiga 100%" @@ -894,27 +893,27 @@ msgstr "Överskott får inte överstiga 100%" msgid "Invalid value for overage" msgstr "Ogiltigt värde för överskott" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Redigera användarinformation" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Ställ in lösenord" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Lösenorden måste matcha" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Felaktigt lösenord angivet" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Systeminformation" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Om InvenTree" @@ -922,14 +921,14 @@ msgstr "Om InvenTree" msgid "Build must be cancelled before it can be deleted" msgstr "Byggnationen måste avbrytas innan den kan tas bort" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "Byggorder" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Byggordrar" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Byggorderreferens" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Byggorder till vilken detta bygge är tilldelad" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "Byggorder till vilken detta bygge är tilldelad" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "Byggstatus" msgid "Build status code" msgstr "Bygg statuskod" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Batchkod" @@ -1140,7 +1139,7 @@ msgstr "Batchkod" msgid "Batch code for this build output" msgstr "Batch-kod för denna byggutdata" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "Datum för slutförande" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Måldatum för färdigställande. Byggandet kommer att förfallas efter detta datum." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Slutförandedatum" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Användare som utfärdade denna byggorder" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "Byggutgång matchar inte bygg order" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Lagerposten är överallokerad" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Allokeringsmängden måste vara större än noll" @@ -1338,9 +1337,9 @@ msgstr "Antal måste vara 1 för serialiserat lager" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Serienummer" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Acceptera ofullständig" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Mål" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "Fel vid läsning av filen (felaktig dimension)" msgid "Error reading file (data could be corrupted)" msgstr "Fel vid läsning av fil (data kan vara skadat)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Fil" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Välj en fil att ladda upp" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} Fil" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Unik projektkod" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Projektbeskrivning" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Ingen grupp" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Omstart krävs" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "Serverinstans (Namn)" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Företagsnamn" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Internt företagsnamn" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "Bas-URL" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "Bas-URL för serverinstans" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Standardvaluta" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Ladda ned från URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Tillåt nedladdning av bilder och filer från extern URL" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Kräv bekräftelse" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Kräv uttrycklig användarbekräftelse för vissa åtgärder." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Stöd för streckkoder" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Delar är virtuella som standard" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Visa import i vyer" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "Visa importguiden i vissa delvyer" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Visa relaterade delar" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Visa relaterade delar för en del" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Visningsformat för delnamn" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Formatera för att visa artikelnamnet" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Interna priser" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Aktivera etikettutskrift" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Aktivera etikettutskrift från webbgränssnittet" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "Etikettbild DPI" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Aktivera rapporter" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Aktivera generering av rapporter" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Debugläge" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Sidstorlek" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Standard sidstorlek för PDF-rapporter" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Aktivera testrapporter" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Tillåtna domäner" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "Aktivera projektkoder" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Sök efter artiklar" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "Sök efter leverantörsartikel" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Sök efter tillverkarartikel" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Telefonnummer" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Företag" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "Postnummer" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "Land" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "Leverantör" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Välj leverantör" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "Kund" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Leverantörer" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "Adresser" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "Etikett" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "QR-kod" msgid "QR code" msgstr "QR-kod" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "QR-kod" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Leveransdatum" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Nyckelord" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "I lager" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Artiklar" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Ikon" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Ikon (valfritt)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Kategori" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Standardleverantör" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "Välj kategori" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "Generera rapport" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "Redigera" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Okänd databas" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,115 +7374,115 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Ingen åtgärd specificerad" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Ingen matchande åtgärd hittades" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "No matching action found" msgid "Multiple matching line items found" msgstr "Ingen matchande åtgärd hittades" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching action found" msgid "No matching line item found" msgstr "Ingen matchande åtgärd hittades" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Stock item allocated to sales order" msgstr "Lagersaldo att allokera för att bygga" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "Edit User Information" msgid "Not enough information" msgstr "Redigera användarinformation" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7498,11 +7496,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7518,7 +7516,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7526,7 +7524,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7534,19 +7532,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7554,17 +7552,17 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Quantity to allocate" msgstr "Lagersaldo att allokera för att bygga" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7577,8 +7575,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7586,49 +7584,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7668,7 +7666,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7684,7 +7682,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7744,113 +7742,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7862,35 +7860,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7902,40 +7900,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7955,103 +7953,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8092,7 +8090,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8118,12 +8116,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8149,7 +8147,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8158,438 +8156,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "Statuskod" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "Leverantörsnamn" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8605,116 +8603,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8935,7 +8933,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9572,7 +9570,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Radera" @@ -12741,7 +12739,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13380,7 +13378,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13551,31 +13549,31 @@ msgstr "Ja" msgid "No" msgstr "Nej" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Användare" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13591,15 +13589,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13611,38 +13609,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 03b674358e..627bbfd97d 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:46\n" "Last-Translator: \n" "Language-Team: Thai\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "ป้อนวันที่" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "ป้อนวันที่" msgid "Notes" msgstr "หมายเหตุ" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "ป้อนรหัสผ่าน" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "ป้อนรหัสผ่านใหม่" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "ยืนยันรหัสผ่าน" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "ยืนยันรหัสผ่านใหม่" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "รหัสผ่านเดิม" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "อีเมล (อีกครั้ง)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "การยืนยันอีเมล" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "ปริมาณสินค้าไม่ถูกต้อง" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "หมายเลขซีเรียลซ้ำกัน" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "ไม่พบหมายเลขซีเรียล" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "การเชื่อมต่อขัดข้อง" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "ไฟล์รูปภาพมีขนาดใหญ่เกินไป" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "ไฟล์แนบ" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "เลือกไฟล์ที่ต้องการแนบ" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "เลือกไฟล์ที่ต้องการแนบ" msgid "Link" msgstr "ลิงก์" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "ความคิดเห็น" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "ความเห็นของไฟล์" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "ผู้ใช้งาน" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "วันที่อัปโหลด" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "จำเป็นต้องใส่ชื่อไฟล์" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "ชื่อไฟล์ห้ามมีตัวอักษรต้องห้าม '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "ไม่พบนามสกุลของไฟล์" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "" msgid "Name" msgstr "ชื่อ" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "ชื่อ" msgid "Description" msgstr "คำอธิบาย" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "ข้อมูลบาร์โค้ด" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "บาร์โค้ดนี้มีในระบบแล้ว" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเวอร์" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "ต้องเป็นตัวเลข" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "ชื่อไฟล์" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "ไฟล์ข้อมูล" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "เลือกไฟล์ข้อมูลที่จะอัปโหลด" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "ไฟล์มีขนาดใหญ่เกินไป" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "ภาษาโปรตุเกส" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "ภาษารัสเซีย" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "ภาษาสวีเดน" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "ภาษาไทย" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "ภาษาเวียดนาม" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "อยู่ระหว่างดำเนินการ" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "สำเร็จแล้ว" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "ยกเลิกแล้ว" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "สูญหาย" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "ส่งคืนแล้ว" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "จัดส่งแล้ว" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "ตกลง" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "ได้รับความเสียหาย" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "ทำลายแล้ว" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "ถูกปฏิเสธ" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -854,23 +853,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -894,27 +893,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "แก้ไขข้อมูลสมาชิก" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "ตั้งรหัสผ่าน" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "รหัสผ่านต้องตรงกัน" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "ป้อนรหัสผ่านไม่ถูกต้อง" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "ข้อมูลระบบ" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "เกี่ยวกับ Inventree" @@ -922,14 +921,14 @@ msgstr "เกี่ยวกับ Inventree" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1140,7 +1139,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1338,9 +1337,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1865,7 +1864,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4188,7 +4187,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4213,7 +4212,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4471,11 +4470,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4487,7 +4486,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4511,7 +4510,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4519,14 +4518,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,109 +7374,109 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "Edit User Information" msgid "Not enough information" msgstr "แก้ไขข้อมูลสมาชิก" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7492,11 +7490,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7512,7 +7510,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7520,7 +7518,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7528,19 +7526,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7548,15 +7546,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7569,8 +7567,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7578,49 +7576,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7660,7 +7658,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7676,7 +7674,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7736,113 +7734,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7854,35 +7852,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7894,40 +7892,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7947,103 +7945,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8084,7 +8082,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8110,12 +8108,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8141,7 +8139,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8150,438 +8148,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8597,116 +8595,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8927,7 +8925,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9564,7 +9562,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12733,7 +12731,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13372,7 +13370,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13543,31 +13541,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13583,15 +13581,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13603,38 +13601,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index ffebb47db4..3e91dae499 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-11 03:46\n" "Last-Translator: \n" "Language-Team: Turkish\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API uç noktası bulunamadı" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Kullanıcının bu modeli görüntüleme izni yok" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Değer verilmemiş" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -47,22 +47,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "Hata detaylarını admin panelinde bulabilirsiniz" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Tarih giriniz" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Tarih giriniz" msgid "Notes" msgstr "Notlar" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "'{name}' değeri desen formatında yer almıyor" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Sağlanan değer gerekli kalıpla eşleşmiyor: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Şifrenizi girin" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Lütfen Yeni Parolayı Girin" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Parolayı doğrulayın" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Yeni parolayı doğrulayın" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Eski parola" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "E-posta (tekrar)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "E-posta adresi onayı" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Her seferind eaynı e-posta adresini yazmalısınız." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Sağlanan e-posta adresi geçerli değil." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Sağlanan e-posta alanı onaylanmadı." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Kayıt devre dışı." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Boş seri numarası dizesi" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Yinelenen seri" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Seri numarası bulunamadı" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Bağlantı hatası" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Sunucu geçersiz durum kodu ile cevap verdi" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "İstisna oluştu" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Sunucu geçersiz Content-Length değeriyle yanıt verdi" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Resim boyutu çok büyük" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Resim indirme boyutu izin verilenden büyük" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Uzak sunucu boş cevap döndü" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "E-posta" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Eksik dosya" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Bozuk dış bağlantı" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Ek" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Eklenecek dosyayı seç" msgid "Link" msgstr "Bağlantı" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Yorum" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Dosya yorumu" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Kullanıcı" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "yükleme tarihi" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Dosya adı boş olamaz" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Ek dosya yolu geçersiz" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Dosya adı geçersiz karakterler içeriyor'{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Dosya uzantısı yok" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Aynı isimli başka bir dosya zaten var" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Dosya adı değiştirilirken hata" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Geçersiz seçim" msgid "Name" msgstr "Adı" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Adı" msgid "Description" msgstr "Açıklama" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Açıklama (isteğe bağlı)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "üst" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Yol" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Barkod Verisi" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Üçüncü parti barkod verisi" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Barkod Hash" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Sunucu Hatası" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Para birimi" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -463,16 +462,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -480,269 +479,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Dosya adı" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Geçersiz değer" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Veri Dosyası" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Yüklemek istediğiniz dosyayı seçin" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Desteklenmeyen dsoya tipi" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Dosya boyutu çok büyük" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Dosyada kolon bulunamadı" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Dosyada satır bulunamadı" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Dosyada satır bulunamadı" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Dosyada uygun kolon bulunamadı" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Gerekli kolon ismi eksik:'{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Tekrarlanan kolon ismi:'{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Çekçe" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Danca" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Almanca" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Yunanca" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "İngilizce" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "İspanyolca(Meksika)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Farsça" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Fince" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Fransızca" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Macarca" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Japonca" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Korece" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Portekizce" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Portekizce (Brezilya)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Rusça" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Slovakça" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Tay dili" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Vietnamca" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Arka plan çalışanı kontrolü başarısız oldu" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "E-posta arka ucu yapılandırılmadı" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InvenTree sistem sağlık kontrolü başarısız" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Bekliyor" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Sipariş verildi" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Tamamlandı" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "İptal edildi" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Kayıp" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "İade" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Devam Ediyor" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Sevk edildi" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "TAMAM" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Dikkat gerekli" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Hasarlı" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Kullanılamaz durumda" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Reddedildi" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "Karantinaya alındı" @@ -854,23 +853,23 @@ msgstr "Müşteriden geri döndü" msgid "Production" msgstr "Üretim" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Geri Dön" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -882,11 +881,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "Geçerli bir para birimi kodu değil" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Fazlalık değeri negatif olmamalıdır" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Fazlalık %100'ü geçmemelidir" @@ -894,27 +893,27 @@ msgstr "Fazlalık %100'ü geçmemelidir" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Kullanıcı Bilgisini Düzenle" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Şifre Belirle" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Parola alanları eşleşmelidir" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Sistem Bilgisi" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "InvenTree Hakkında" @@ -922,14 +921,14 @@ msgstr "InvenTree Hakkında" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -943,14 +942,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -980,7 +979,7 @@ msgstr "Yapım İşi Emri" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Yapım İşi Emirleri" @@ -996,9 +995,9 @@ msgstr "" msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1026,13 +1025,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1043,7 +1042,7 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1130,8 +1129,8 @@ msgstr "Yapım İşi Durumu" msgid "Build status code" msgstr "Yapım işi durum kodu" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Sıra numarası" @@ -1140,7 +1139,7 @@ msgstr "Sıra numarası" msgid "Batch code for this build output" msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1155,7 +1154,7 @@ msgstr "Hedef tamamlama tarihi" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Tamamlama tarihi" @@ -1173,10 +1172,10 @@ msgid "User who issued this build order" msgstr "Bu yapım işi emrini veren kullanıcı" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1197,7 +1196,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1211,8 +1210,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1248,9 +1247,9 @@ msgid "Build output does not match Build Order" msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1264,10 +1263,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1277,7 +1276,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1322,11 +1321,11 @@ msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktıs msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" @@ -1338,9 +1337,9 @@ msgstr "Seri numaralı stok için miktar bir olmalı" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1404,8 +1403,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Seri Numaraları" @@ -1422,7 +1421,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1430,10 +1429,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1471,9 +1470,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1545,7 +1544,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "Gerekli stok tamamen tahsis edilemedi" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1581,11 +1580,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1598,7 +1597,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1763,8 +1762,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1801,8 +1800,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1852,7 +1851,7 @@ msgstr "Stok Kaynağı" msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Hedef" @@ -1865,7 +1864,7 @@ msgstr "Hedef konumu belirtilmedi" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2021,19 +2020,19 @@ msgstr "Dosya okurken hata (hatalı ölçüler)" msgid "Error reading file (data could be corrupted)" msgstr "Dosya okurken hata (veri bozulmuş olabilir)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Dosya" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Yüklenecek dosyayı seç" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} Dosya" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "{name} dosyasını yüklemek için seçin" @@ -2046,1041 +2045,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "Anahtar dizesi benzersiz olmalı" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Şirket adı" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "Ana URL" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Varsayılan Para Birimi" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "günler" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "URL'den indir" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Barkod Desteği" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "DPN Regex" -#: common/models.py:1298 +#: common/models.py:1348 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:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Yinelenen DPN'ye İzin Ver" -#: common/models.py:1303 +#: common/models.py:1352 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:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "DPN Düzenlemeye İzin Ver" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Kategori Paremetre Sablonu Kopyala" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Şablon" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Montaj" -#: common/models.py:1352 +#: common/models.py:1394 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:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Bileşen" -#: common/models.py:1359 +#: common/models.py:1400 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:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Satın Alınabilir" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Satılabilir" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Takip Edilebilir" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Sanal" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Parçalar varsayılan olarak sanaldır" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "İlgili parçaları göster" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Hata Ayıklama Modu" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Sayfa Boyutu" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "PDF raporlar için varsayılan sayfa boyutu" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3092,450 +3091,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Fiyat" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Aktif" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3545,76 +3544,76 @@ msgstr "" msgid "Image" msgstr "Resim" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Dosya Yükle" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3622,19 +3621,19 @@ msgstr "Dosya Yükle" msgid "Match Fields" msgstr "Alanları Eşleştir" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3645,186 +3644,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "Şirket web sitesi" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Telefon numarası" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "İletişim telefon numarası" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "İletişim e-posta adresi" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "İletişim" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "müşteri mi" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Bu şirkete ürün satıyor musunuz?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "tedarikçi mi" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Bu şirketten ürün satın alıyor musunuz?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "üretici mi" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Bu şirket üretim yapıyor mu?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Bu şirket için varsayılan para birimi" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Temel Parça" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Parça seçin" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3834,12 +3833,12 @@ msgstr "Parça seçin" msgid "Manufacturer" msgstr "Üretici" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Üretici seçin" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3849,69 +3848,69 @@ msgstr "Üretici seçin" msgid "MPN" msgstr "ÜPN" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Üretici Parça Numarası" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Parametre adı" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Değer" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3924,28 +3923,28 @@ msgstr "" msgid "Supplier" msgstr "Tedarikçi" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Tedarikçi seçin" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3955,27 +3954,27 @@ msgstr "" msgid "Note" msgstr "Not" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Paketleme" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3985,27 +3984,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "çoklu" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4067,10 +4066,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4085,7 +4084,7 @@ msgstr "Müşteri" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4165,7 +4164,7 @@ msgstr "Tedarikçi Stoku" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Satın Alma Emirleri" @@ -4188,7 +4187,7 @@ msgstr "Yeni Satın Alma Emri" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Satış Emirleri" @@ -4213,7 +4212,7 @@ msgstr "Atanan Stok" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4281,7 +4280,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4330,7 +4329,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4379,8 +4378,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4429,16 +4428,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Stok Kalemleri" @@ -4471,11 +4470,11 @@ msgstr "Şirketler" msgid "New Company" msgstr "Yeni Şirket" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Etiket adı" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Etiket tanımı" @@ -4487,7 +4486,7 @@ msgstr "Etiket" msgid "Label template file" msgstr "Etiket şablon listesi" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Etkin" @@ -4511,7 +4510,7 @@ msgstr "Yükseklik [mm]" msgid "Label height, specified in mm" msgstr "Etiket yüksekliği mm olarak belirtilmeli" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Dosya Adı Deseni" @@ -4519,14 +4518,14 @@ msgstr "Dosya Adı Deseni" msgid "Pattern for generating label filenames" msgstr "Etiket dosya adları oluşturma için desen" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Filtreler" @@ -4543,7 +4542,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4552,11 +4551,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4570,7 +4569,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4579,192 +4578,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Harici sayfaya bağlantı" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Oluşturan" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Sipariş referansı" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4774,261 +4773,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "Seri numaralı stok kalemi için miktar bir olmalı" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Stok tahsis miktarını girin" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5040,51 +5039,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5092,24 +5091,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5478,579 +5477,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "DPN" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Revizyon" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Anahtar kelimeler" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Çeşidi" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Minimum Stok" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Parçalar" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Varsayılan Konum" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Parça Kategorileri" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Bu kategori içindeki parçalar için varsayılan konum" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Parça adı" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:799 +#: part/models.py:854 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:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:940 +#: part/models.py:1006 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:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6062,334 +6061,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 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:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Gerekli" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 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:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: part/models.py:3824 +#: part/models.py:4026 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:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6401,299 +6400,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6708,12 +6707,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6825,9 +6823,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7235,7 +7233,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7364,11 +7362,11 @@ msgstr "Yeni parça çeşidi oluştur" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7376,119 +7374,119 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "İşlem belirtilmedi" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Eşleşen eylem bulunamadı" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Barkod verisi için eşleşme bulunamadı" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Barkod verisi için eşleşme bulundu" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "No matching action found" msgid "Multiple matching line items found" msgstr "Eşleşen eylem bulunamadı" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching action found" msgid "No matching line item found" msgstr "Eşleşen eylem bulunamadı" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 #, fuzzy #| msgid "Barcode does not match a valid location" msgid "Barcode does not match an existing stock item" msgstr "Barkod geçerli bir konumla eşleşmiyor" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 #, fuzzy #| msgid "Quantity does not match serial numbers" msgid "Stock item does not match line item" msgstr "Miktar seri numaları ile eşleşmiyor" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Stock item allocated to sales order" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "copy version information" msgid "Not enough information" msgstr "sürüm bilgisini kopyala" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7502,11 +7500,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7522,7 +7520,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7530,7 +7528,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7538,19 +7536,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7558,17 +7556,17 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Quantity to allocate" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7581,8 +7579,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7590,49 +7588,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7672,7 +7670,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7688,7 +7686,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7748,113 +7746,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7866,35 +7864,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7906,40 +7904,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "Şablon için geçerli bir nesne sağlanmadı" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7959,103 +7957,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Şablon adı" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "Rapor şablon dosyası" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "Rapor şablon tanımı" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "Revizyon numarası raporla (otomatik artış)" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "Rapor şablonu etkin" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "Stok kalemi sorgu filtreleri (anahter=değer [key=value] olarak virgülle ayrılmış liste)" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8096,7 +8094,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8122,12 +8120,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8153,7 +8151,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Seri No" @@ -8162,438 +8160,438 @@ msgstr "Seri No" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Stok Konumları" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "Seri numarası olan ögenin miktarı bir olmalı" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 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:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "Seri numaraları tam sayı listesi olmalı" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Seri numaraları zaten mevcut" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8609,116 +8607,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "İşlem notu ekle (isteğe bağlı)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8939,7 +8937,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9576,7 +9574,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12745,7 +12743,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13384,7 +13382,7 @@ msgstr "Bildirimleri Göster" msgid "New Notifications" msgstr "Yeni Bildirimler" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13555,31 +13553,31 @@ msgstr "Evet" msgid "No" msgstr "Hayır" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Kullanıcılar" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Bu gruba atanacak kullanıcıyı seçin" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Kullanıcı bilgisi" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Yetkiler" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "Önemli tarihler" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13595,15 +13593,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13615,38 +13613,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "İzinleri ayarla" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Grup" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Görünüm" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Parçayı görüntüleme izni" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Parça ekleme izni" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Değiştir" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Parçaları düzenleme izni" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Parçaları silme izni" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index d2a5666c6e..69a9640e21 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-12 03:57\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "API endpoint không tồn tại" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "Người dùng không được phân quyền xem mẫu này" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "Chưa cung cấp giá trị" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "Không thể chuyển đổi {original} sang {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "Số lượng cung cấp không hợp lệ" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "Số lượng cung cấp không hợp lệ ({exc})" @@ -47,22 +47,22 @@ msgstr "Số lượng cung cấp không hợp lệ ({exc})" msgid "Error details can be found in the admin panel" msgstr "Chi tiết lỗi có thể được tìm thấy trong bảng quản trị" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "Nhập ngày" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "Nhập ngày" msgid "Notes" msgstr "Ghi chú" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "Giá trị '{name}' không xuất hiện ở định dạng mẫu" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "Giá trị được cung cấp không khớp với mẫu bắt buộc: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "Nhập mật khẩu" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "Nhập mật khẩu mới" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "Xác nhận mật khẩu" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "Xác nhận mật khẩu mới" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "Mật khẩu cũ" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (nhắc lại)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Xác nhận địa chỉ email" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "Bạn phải nhập cùng một email mỗi lần." -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "Địa chỉ email chính đã cung cấp không hợp lệ." -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "Miền email được cung cấp không được phê duyệt." -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "Đăng ký bị vô hiệu hóa." -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "Số lượng cung cấp không hợp lệ" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "Chuỗi số sê-ri trống" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "Trùng lặp sê-ri" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "Phạm vi nhóm không hợp lệ: {group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "Khoảng nhóm {group} vượt cho phép số lượng ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "Thứ tự nhóm không hợp lệ: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "Không tìm thấy số sê-ri" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "Số sê ri duy nhất ({len(serials)}) phải phù hợp số lượng ({expected_quantity})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "Xóa thẻ HTML từ giá trị này" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "Lỗi kết nối" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "Máy chủ phản hồi với mã trạng thái không hợp lệ" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "Xảy ra Exception" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "Máy chủ đã phản hồi với giá trị Content-Length không hợp lệ" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "Hình ảnh quá lớn" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "Tải xuống hình ảnh vượt quá kích thước tối đa" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "Máy chủ trả về phản hồi trống" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] Đăng nhập vào ứng dụng" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "Email" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "Siêu dữ liệu phải là đối tượng từ điển của python" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "Phụ trợ siêu dữ liệu" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "Trường siêu dữ liệu JSON, được sử dụng bởi phụ trợ bên ngoài" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "Mẫu được định dạng không thích hợp" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "Khóa định dạng không rõ ràng đã được chỉ định" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "Thiếu khóa định dạng cần thiết" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "Trường tham chiếu không thể rỗng" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "Tham chiếu phải phù hợp với mẫu yêu cầu" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "Số tham chiếu quá lớn" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "Tập tin bị thiếu" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "Thiếu liên kết bên ngoài" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "Đính kèm" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "Chọn file đính kèm" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "Chọn file đính kèm" msgid "Link" msgstr "Liên kết" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "Liên kết đến URL bên ngoài" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "Bình luận" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "Bình luận tệp tin" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "Người dùng" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "Ngày tải lên" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "Tên tập tin không được để trống" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "Thư mục đính kèm không hợp lệ" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Tên tập tin chứa ký tự không hợp lệ '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "Tên tệp tin thiếu phần mở rộng" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "Tên của tệp đính kèm này đã tồn tại" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "Lỗi khi đổi tên tệp tin" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "Lựa chọn sai" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "Lựa chọn sai" msgid "Name" msgstr "Tên" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "Tên" msgid "Description" msgstr "Mô tả" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "Mô tả (tùy chọn)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "thư mục cha" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "Đường dẫn" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Ghi chú markdown (không bắt buộc)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "Dữ liệu mã vạch" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "Dữ liệu mã vạch của bên thứ ba" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "Dữ liệu băm mã vạch" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "Chuỗi băm duy nhất của dữ liệu mã vạch" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "Mã vạch đã tồn tại" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "Lỗi máy chủ" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "Lỗi đã được ghi lại bởi máy chủ." -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "Phải là một số hợp lệ" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "Tiền tệ" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "Chọn tiền tệ trong các tùy chọn đang có" @@ -463,16 +462,16 @@ msgstr "Chọn tiền tệ trong các tùy chọn đang có" msgid "You do not have permission to change this user role." msgstr "Bạn không có quyền thay đổi vai trò của người dùng này." -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "Chỉ có siêu người dùng là có thể tạo người dùng mới" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "Chào mừng đến với {current_site.name}" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -483,269 +482,269 @@ msgstr "" "\n" "Xin hãy sử dụng chức năng quên mật khẩu để truy cập (tại https://{domain})." -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "Tên tập tin" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "Giá trị không hợp lệ" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "Tập tin dữ liệu" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "Chọn tệp tin để tải lên" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "Loại tệp tin không được hỗ trợ" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "Tệp tin quá lớn" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "Không tìm thấy cột nào trong tệp tin" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "Không tìm thấy dòng nào trong tệp tin" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "Chưa có dữ liệu" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "Chưa cung cấp cột dữ liệu" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Thiếu cột bắt buộc: '{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Nhân bản cột: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "Hình ảnh từ xa" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "URL của tệp hình ảnh bên ngoài" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "Chức năng tải hình ảnh từ URL bên ngoài không được bật" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "Tiếng Bulgaria" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "Tiếng Séc" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "Tiếng Đan Mạch" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "Tiếng Đức" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "Tiếng Hy Lạp" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "Tiếng Anh" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "Tiếng Tây Ban Nha" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "Tiếng Tây Ban Nha (Mê-hi-cô)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "Tiếng Ba Tư" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "Tiếng Phần Lan" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "Tiếng Pháp" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "Tiếng Do Thái" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "Tiếng Ấn Độ" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "Tiếng Hung-ga-ri" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "Tiếng Ý" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "Tiếng Nhật" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "Tiếng Hàn" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "Tiếng Hà Lan" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "Tiếng Na Uy" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "Tiếng Ba Lan" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "Tiếng Bồ Đào Nha" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "Tiếng Bồ Đào Nha (Brazil)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "Tiếng Nga" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "Tiếng Slô-ven-ni-a" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "Tiếng Thụy Điển" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "Tiếng Thái" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "Tiếng Thổ Nhĩ Kỳ" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "Tiếng Việt" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "Tiếng Trung (Giản thể)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "Tiếng Trung (Phồn thể)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "Nhân công chạy ngầm kiểm tra thất bại" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "Chưa cấu hình dịch vụ gửi email" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "Kiểm tra tình trạng hệ thống InvenTree thất bại" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "Đợi duyệt" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "Đã đặt" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "Hoàn thành" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "Đã hủy" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "Mất" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "Đã trả lại" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "Đang tiến hành" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "Đã chuyển" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "Đồng ý" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "Chú ý cần thiết" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "Bị hư hại" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "Đã hủy" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "Đã từ chối" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "Đã cách ly" @@ -857,23 +856,23 @@ msgstr "Bị trả lại từ khách hàng" msgid "Production" msgstr "Sản xuất" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "Trả lại" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "Sửa chữa" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "Thay thế" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "Hoàn tiền" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "Từ chối" @@ -885,11 +884,11 @@ msgstr "Đơn vị vật lý không hợp lệ" msgid "Not a valid currency code" msgstr "Mã tiền tệ không hợp lệ" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "Giá trị hàng hóa dư không thể là số âm" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "Hàng hóa dư thừa không thể vượt quá 100%" @@ -897,27 +896,27 @@ msgstr "Hàng hóa dư thừa không thể vượt quá 100%" msgid "Invalid value for overage" msgstr "Giá trị không hợp lệ cho hàng hóa dư thừa" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "Sửa thông tin người dùng" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "Đặt Mật khẩu" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "Mật khẩu phải trùng khớp" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "Nhập sai mật khẩu" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "Thông tin hệ thống" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "Giới thiệu" @@ -925,14 +924,14 @@ msgstr "Giới thiệu" msgid "Build must be cancelled before it can be deleted" msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "Vật tư tiêu hao" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -946,14 +945,14 @@ msgstr "Tuỳ chọn" msgid "Tracked" msgstr "Đã theo dõi" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "Đã cấp phát" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -983,7 +982,7 @@ msgstr "Tạo đơn hàng" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "Tạo đơn hàng" @@ -999,9 +998,9 @@ msgstr "Sản phẩm đơn đặt bản dựng không thể thay đổi được msgid "Build Order Reference" msgstr "Tham chiếu đơn đặt bản dựng" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1029,13 +1028,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "Đơn đặt bản dựng với bản dựng này đã được phân bổ" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1046,7 +1045,7 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1133,8 +1132,8 @@ msgstr "Trnạg thái bản dựng" msgid "Build status code" msgstr "Mã trạng thái bản dựng" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "Mã lô hàng" @@ -1143,7 +1142,7 @@ msgstr "Mã lô hàng" msgid "Batch code for this build output" msgstr "Mã lô cho đầu ra bản dựng này" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1158,7 +1157,7 @@ msgstr "Ngày hoàn thành mục tiêu" msgid "Target date for build completion. Build will be overdue after this date." msgstr "Ngày mục tiêu để hoàn thành bản dựng. Bản dựng sẽ bị quá hạn sau ngày này." -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "Ngày hoàn thành" @@ -1176,10 +1175,10 @@ msgid "User who issued this build order" msgstr "Người dùng người đã được phân công cho đơn đặt bản dựng này" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1200,7 +1199,7 @@ msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt bản #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1214,8 +1213,8 @@ msgstr "Độ ưu tiên" msgid "Priority of this build order" msgstr "Độ quan trọng của đơn đặt bản dựng" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1251,9 +1250,9 @@ msgid "Build output does not match Build Order" msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "Số lượng phải lớn hơn 0" @@ -1267,10 +1266,10 @@ msgstr "Dựng đối tượng" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1280,7 +1279,7 @@ msgstr "Dựng đối tượng" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1325,11 +1324,11 @@ msgstr "Xây dựng mục phải xác định đầu ra, bởi vì sản phẩm msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "Kho hàng đã bị phân bổ quá đà" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "Số lượng phân bổ phải lớn hơn 0" @@ -1341,9 +1340,9 @@ msgstr "Số lượng phải là 1 cho kho sê ri" msgid "Selected stock item does not match BOM line" msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1407,8 +1406,8 @@ msgstr "Số lượng nguyên dương cần phải điền cho sản phẩm có msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "Cần nhập số lượng nguyên dương, bởi vì hóa đơn vật liệu chứa sản phẩm có thể theo dõi" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "Số sê-ri" @@ -1425,7 +1424,7 @@ msgstr "Số sêri tự cấp" msgid "Automatically allocate required items with matching serial numbers" msgstr "Tự động cấp số seri phù hợp cho hàng hóa được yêu cầu" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "Số sêri sau đây đã tồn tại hoặc không hợp lệ" @@ -1433,10 +1432,10 @@ msgstr "Số sêri sau đây đã tồn tại hoặc không hợp lệ" msgid "A list of build outputs must be provided" msgstr "Danh sách đầu ra bản dựng phải được cung cấp" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1474,9 +1473,9 @@ msgid "Location for completed build outputs" msgstr "Vị trí cho đầu ra bản dựng hoàn thiện" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1548,7 +1547,7 @@ msgstr "Chấp nhận hàng hóa không được phân bổ đầy đủ vào đ msgid "Required stock has not been fully allocated" msgstr "Kho được yêu cầu chưa được phân bổ hết không gian" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "Chấp nhận không hoàn thành" @@ -1584,11 +1583,11 @@ msgstr "Mục chi tiết bản dựng" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part phải trỏ đến phần tương tự của đơn đặt bản dựng" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "Hàng hóa phải trong kho" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "Số lượng có sẵn ({q}) đã bị vượt quá" @@ -1601,7 +1600,7 @@ msgstr "Đầu ra bản dựng phải được xác định cho việc phân s msgid "Build output cannot be specified for allocation of untracked parts" msgstr "Đầu ra bản dựng không thể chỉ định cho việc phân sản phẩm chưa được theo dõi" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "Hàng hóa phân bổ phải được cung cấp" @@ -1766,8 +1765,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "Kho không được phân bổ đầy đủ với yêu cầu bản dựng này" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1804,8 +1803,8 @@ msgid "Completed Outputs" msgstr "Đầu ra hoàn thiện" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1855,7 +1854,7 @@ msgstr "Nguồn kho" msgid "Stock can be taken from any available location." msgstr "Kho có thể được lấy từ bất kỳ địa điểm nào." -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "Đích đến" @@ -1868,7 +1867,7 @@ msgstr "Địa điểm đích chưa được xác định" msgid "Allocated Parts" msgstr "Sản phẩm đã phân bổ" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2024,19 +2023,19 @@ msgstr "Lỗi đọc file (kích thước không hợp lệ)" msgid "Error reading file (data could be corrupted)" msgstr "Lỗi đọc file (dữ liệu có thể bị hư hại)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "Tệp" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "Chọn tệp để tải lên" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "Tập tin {name.title()}" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "Chọn tập tin {name} để tải lên" @@ -2049,1041 +2048,1041 @@ msgstr "Đã cập nhật" msgid "Timestamp of last update" msgstr "Nhãn thời gian của lần cập cuối cùng" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "Mã dự án duy nhất" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "Mô tả dự án" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "Người dùng hoặc nhóm có trách nhiệm với dự án này" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "Giá trị cài đặt" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "Giá trị đã chọn không hợp lệ" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "Giá trị phải là kiểu boolean" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "Giá trị phải là một số nguyên dương" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "Chuỗi khóa phải duy nhất" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "Không có nhóm" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "Tên miền rỗng là không được phép." -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "Tên miền không hợp lệ: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "Không phần mở rộng" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "Cần khởi động lại" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "Một thiết lập đã bị thay đổi yêu cầu khởi động lại máy chủ" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "Chuyển dữ liệu chờ xử lý" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "Số đợt nâng cấp cơ sở dữ liệu chờ xử lý" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "Tên thực thể máy chủ" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "Mô tả chuỗi cho thực thể máy chủ" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "Sử dụng tên thực thể" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "Sử dụng tên thực thể trên thanh tiêu đề" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "Cấm hiển thị `giới thiệu`" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "Chỉ hiển thị cửa sổ `giới thiệu` với siêu người dùng" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "Tên công ty" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "Tên công ty nội bộ" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "URL cơ sở" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "URL cơ sở cho thực thể máy chủ" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "Tiền tệ mặc định" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "Chọn tiền tệ chính khi tính giá" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "Tần suất cập nhật tiền tệ" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái (điền 0 để tắt)" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "ngày" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "Phần mở rộng cập nhật tiền tệ" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "Phần mở rộng cập nhật tiền tệ được sử dụng" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "Tải về từ URL" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "Cho phép tải ảnh và tệp tin từ xa theo URL bên ngoài" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "Giới hạn kích thước tải xuống" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "Kích thước tải xuống tối đa với hình ảnh từ xa" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "User-agent được dùng để tải xuống theo URL" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "Cho phép ghi đè user-agent được dùng để tải về hình ảnh và tệp tin từ xa theo URL bên ngoài (để trống nghĩa là dùng mặc định)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "Yêu cầu xác nhận" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "Yêu cầu người dùng xác nhận rõ ràng với một số chức năng nhất định." -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "Cấp độ cây" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "Độ sâu cây mặc định cho màn hình cây. Cấp độ sâu hơn sẽ sử dụng kỹ thuật tải chậm nếu cần thiết." -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "Thời gian kiểm tra bản cập nhật" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "Mức độ thường xuyên để kiểm tra bản cập nhật (điền 0 để tắt)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "Sao lưu tự động" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "Bật tính năng sao lưu tự động cơ sở dữ liệu và tệp tin đa phương tiện" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "Khoảng thời gian sao lưu tự động" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "Xác định số ngày giữa các kỳ sao lưu tự động" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "Khoảng thời gian xóa tác vụ" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "Kết quả tác vụ chạy ngầm sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "Khoảng thời gian xóa nhật ký lỗi" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "Nhật ký lỗi sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "Khoảng thời gian xóa thông báo" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "Thông báo sẽ bị xóa sau số ngày được chỉ định" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "Hỗ trợ mã vạch" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "Bật hỗ trợ máy quét mã vạch trong giao diện web" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "Độ trễ quét mã vạch" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "Thời gian trễ xử lý đầu đọc mã vạch" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "Hỗ trợ mã vạch qua webcam" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "Cho phép quét mã vạch qua webcam bên trong trình duyệt" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "Phiên bản Sản phẩm" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "Bật trường phiên bản cho sản phẩm" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "Mẫu IPN" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "Mẫu dùng nhanh phổ biến dành cho tìm IPN sản phẩm" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "Cho phép trùng IPN" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "Cho phép nhiều sản phẩm dùng IPN giống nhau" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "Cho phép sửa IPN" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "Cho phép đổi giá trị IPN khi sửa một sản phẩm" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "Sao chép dữ liệu BOM của sản phẩm" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "Sao chép dữ liệu BOM mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "Sao chép dữ liệu tham số sản phẩm" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "Sao chép dữ liệu tham số mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "Chép thông tin kiểm thử sản phẩm" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "Sao chép dữ liệu kiểm thử mặc định khi nhân bản 1 sản phẩm" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "Sao chéo mẫu tham số danh mục" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "Sao chéo mẫu tham số danh mục khi tạo 1 sản phẩm" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "Mẫu" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "Sản phẩm là mẫu bởi mặc định" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "Lắp ráp" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "Thành phần" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "Sản phẩm có thể được sử dụng mặc định như thành phần phụ" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "Có thể mua" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "Sản phẩm mặc định có thể mua được" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "Có thể bán" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "Sản phẩm mặc định có thể bán được" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "Có thể theo dõi" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "Sản phẩm mặc định có thể theo dõi được" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "Ảo" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "Sản phẩm mặc định là số hóa" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "Hiển thị Nhập liệu trong khung xem" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "Hiển thị đồ thuật nhập dữ liệu trong một số khung nhìn sản phẩm" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "Hiển thị sản phẩm liên quan" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "Hiện sản phẩm liên quan cho 1 sản phẩm" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "Số liệu tồn kho ban đầu" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "Cho phép tạo tồn kho ban đầu khi thêm 1 sản phẩm mới" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "Dữ liệu nhà cung cấp ban đầu" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "Cho phép tạo dữ liệu nhà cung cấp ban đầu khi thêm 1 sản phẩm mới" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "Định dạng tên sản phẩm hiển thị" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "Định dạng để hiển thị tên sản phẩm" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "Biểu tượng mặc định của danh mục sản phẩm" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "Biểu tượng mặc định của danh mục sản phẩm (để trống nghĩa là không có biểu tượng)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "Bắt buộc đơn vị tham số" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "Nếu đơn vị được cung cấp, giá trị tham số phải phù hợp với các đơn vị xác định" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "Vị trí phần thập phân giá bán tối thiểu" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "Số vị trí thập phân tối thiểu cần hiển thị khi tạo dữ liệu giá" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "Vị trí phần thập phân giá bán tối đa" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "Số vị trí thập phân tối đa cần hiển thị khi tạo dữ liệu giá" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "Sử dụng giá bán nhà cung cấp" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "Bao gồm giá phá vỡ cả nhà cung cấp trong tính toán giá tổng thể" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "Ghi đè lịch sử mua hàng" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "Giá đơn hàng đặt mua trước đó ghi đè giá phá vỡ của nhà cung cấp" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "Sử dụng giá hàng hóa trong kho" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "Dùng giá bán từ dữ liệu kho nhập vào thủ công đối với bộ tính toán giá bán" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "Tuổi giá kho hàng" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "Loại trừ hàng hóa trong kho cũ hơn số ngày ngày từ bảng tính giá bán" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "Sử dụng giá biến thể" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "Bao gồm giá biến thể trong bộ tính toán giá tổng thể" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "Chỉ các biến thể hoạt động" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "Chỉ sử dụng sản phẩm biến thể hoạt động để tính toán giá bán biến thể" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "Tần suất tạo lại giá" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "Số ngày trước khi giá sản phẩm được tự động cập nhật" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "Giá nội bộ" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "Bật giá nội bộ cho sản phẩm" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "Ghi đè giá nội bộ" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "Nếu khả dụng, giá nội bộ ghi đè tính toán khoảng giá" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "Bật in tem nhãn" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "Bật chức năng in tem nhãn từ giao diện web" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "DPI hỉnh ảnh tem nhãn" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "Độ phân giải DPI khi tạo tệp hình ảnh để cung cấp cho plugin in ấn tem nhãn" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "Bật báo cáo" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "Cho phép tạo báo cáo" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "Chế độ gỡ lỗi" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "Tạo báo cáo trong chế độ gỡ lỗi (đầu ra HTML)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "Khổ giấy" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "Kích thước trang mặc định cho báo cáo PDF" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "Bật báo cáo kiểm thử" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "Cho phép tạo báo cáo kiểm thử" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "Đính kèm báo cáo kiểm thử" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "Khi in một báo cáo kiểm thử, đính kèm một bản sao của báo cáo kiểm thử với hàng trong kho đã được kết hợp" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "Sê ri toàn cục duy nhất" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "Số sê ri cho hàng trong kho phải là duy nhất trong toàn hệ thống" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "Tự động điền số sê ri" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "Tự động điền số sê ri vào biểu mẫu" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "Xóa kho đã hết hàng" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "Nhận dạng hành vi mặc định khi hàng trong kho bị hết" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "Mẫu sinh mã theo lô" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "Mẫu tạo mã theo lô mặc định cho hàng trong kho" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "Quá hạn trong kho" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "Bật chức năng quá hạn tồn kho" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "Bán kho quá hạn" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "Cho phép bán hàng kho quá hạn" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "Thời gian hàng cũ trong kho" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "Số ngày hàng trong kho được xác định là cũ trước khi quá hạn" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "Dựng kho quá hạn" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "Cho phép xây dựng với kho hàng quá hạn" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "Kiểm soát sở hữu kho" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "Bật chức năng kiểm soát sở hữu kho với địa điểm và hàng trong kho" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "Biểu tượng địa điểm kho mặc định" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "Biểu tượng địa điểm kho hàng mặc định (trống nghĩa là không có biểu tượng)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "Hiển thị hàng hóa đã lắp đặt" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "Hiển thị hàng trong kho đã được lắp đặt trên bảng kho" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "Mã tham chiếu đơn đặt bản dựng" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt bản dựng" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "Bật đơn hàng trả lại" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "Bật chức năng đơn hàng trả lại trong giao diện người dùng" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "Mẫu tham chiếu đơn hàng trả lại" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "Mẫu bắt buộc để tạo trường tham chiếu đơn hàng trả lại" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "Sửa đơn hàng trả lại đã hoàn thành" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "Cho phép sửa đơn hàng trả lại sau khi đã hoàn thành rồi" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt hàng" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "Mẫu bắt buộc để tạo trường tham chiếu đơn đặt hàng" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "Vận chuyển mặc định đơn đặt hàng" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "Cho phép tạo vận chuyển mặc định với đơn đặt hàng" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "Sửa đơn đặt hàng đã hoàn thành" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt hàng sau khi đã vận chuyển hoặc hoàn thành" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "Mẫu tham chiếu đơn đặt mua" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt mua" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "Sửa đơn đặt mua đã hoàn thành" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "Cho phép sửa đơn đặt mua sau khi đã vận chuyển hoặc hoàn thành" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "Bật quên mật khẩu" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "Bật chức năng quên mật khẩu trong trang đăng nhập" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "Bật đăng ký" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "Cho phép người dùng tự đăng ký tại trang đăng nhập" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "Bật SSO" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "Cho phép SSO tại trang đăng nhập" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "Bật đăng ký SSO" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "Cho phép người dùng tự đăng ký SSO tại trang đăng nhập" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "Yêu cầu email" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "Yêu cầu người dùng cung cấp email để đăng ký" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "Người dùng tự động điền SSO" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "Tự động điền thông tin chi tiết từ dữ liệu tài khoản SSO" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "Thư 2 lần" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần thư điện tử của họ" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "Mật khẩu 2 lần" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "Khi đăng ký sẽ hỏi người dùng hai lần mật khẩu của họ" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "Các tên miền được phép" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "Cấm đăng ký với 1 số tên miền cụ thể (dấu phẩy ngăn cách, bắt đầu với dấu @)" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "Nhóm khi đăng ký" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "Nhóm được gán cho người dùng mới khi đăng ký" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "Bắt buộc MFA" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "Người dùng phải sử dụng bảo mật đa nhân tố." -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "Kiểm tra phần mở rộng khi khởi động" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "Kiểm tra toàn bộ phần mở rộng đã được cài đặt khi khởi dộng - bật trong môi trường ảo hóa" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "Bật tích hợp URL" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "Bật phần mở rộng để thêm định tuyến URL" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "Bật tích hợp điều hướng" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "Bật phần mở rộng để tích hợp thanh định hướng" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "Bật tích hợp ứng dụng" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "Bật phần mở rộng để thêm ứng dụng" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "Cho phép tích hợp lập lịch" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "Bật phẩn mở rộng để chạy các tác vụ theo lịch" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "Bật tích hợp nguồn cấp sự kiện" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "Bật phần mở rộng để trả lời sự kiện bên trong" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "Bật mã dự án" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "Bật mã dự án để theo dõi dự án" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "Chức năng kiểm kê" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Bật chức năng kiểm kê theo mức độ ghi nhận kho và tính toán giá trị kho" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "Ngoại trừ vị trí bên ngoài" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Loại trừ hàng trong kho thuộc địa điểm bên ngoài ra khỏi tính toán kiểm kê" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "Giai đoạn kiểm kê tự động" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Số ngày giữa ghi chép kiểm kê tự động (đặt không để tắt)" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "Khoảng thời gian xóa báo cáo" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Báo cáo kiểm kê sẽ bị xóa sau số ngày xác định" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "Hiển thị tên đầy đủ của người dùng" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "Hiển thị tên đầy đủ thay vì tên đăng nhập" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ẩn sản phẩm bị tắt trong kết quả trình bày tại trang chủ" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "Hiện sản phẩm đã đăng ký" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "Hiện sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "Hiện danh mục đã đăng ký" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "Hiện danh mục sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:1970 +#: common/models.py:1979 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:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "Hiển thị BOM chưa được xác thực" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "Hiện BOM chờ xác thực tại trang chủ" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "Hiện thay đổi kho hàng gần đây" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "Hiện hàng trong kho được thay đổi gần nhất trên trang chủ" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "Hiển thị hàng còn ít" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "Hiển thị hàng hóa còn ít tại trang chủ" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "Hiển thị hết hàng" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "Hiển thị hàng hóa đã bán hết tại trang chủ" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "Hiển thị hàng cần thiết" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "Hiện hàng trong kho cần thiết cho xây dựng tại trang chủ" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "Bán kho quá hạn" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "Hiển thị hàng hóa đã quá hạn trên trang chủ" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "Hiện kho hàng ế" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "Hiện hàng trong kho bị ế trên trang chủ" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "Hiện bản dựng chờ xử lý" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "Hiện bản dựng chờ xử lý trên trang chủ" @@ -3095,450 +3094,450 @@ msgstr "Hiện bản dựng quá hạn" msgid "Show overdue builds on the homepage" msgstr "Hiện bản dựng quá hạn trên trang chủ" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "Hiện PO nổi bật" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "Hiện PO nổi bật trên trang chủ" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "Hiện PO quá hạn" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "Hiện đơn mua hàng quá hạn trên trang chủ" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "Hiện đơn hàng vận chuyển nổi bật" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "Hiện đơn hàng vận chuyển nổi bật tại trang chủ" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "Hiện đơn vận chuyển quá hạn" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "Hiện đơn vận chuyển quá hạn trên trang chủ" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "Hiện đơn vận chuyển chờ xử lý" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "Hiện đơn vận chuyển chờ xử lý trên trang chủ" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "Hiện tin tức" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "Hiện tin tức trên trang chủ" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "Hiển thị nhãn cùng dòng" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Hiển thị nhãn PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "Máy in tem nhãn mặc định" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "Cấu hình máy in tem nhãn nào được chọn mặc định" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "Hiển thị báo cáo cùng hàng" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Hiện báo cáo PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "Tìm sản phẩm" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "Hiện hàng hóa trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "Tìm sản phẩm nhà cung cấp" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "Hiện sản phẩm nhà cung cấp trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "Tìm sản phẩm nhà sản xuất" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "Hiện sản phẩm nhà sản xuất trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "Loại trừ sản phẩm ngưng hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "Tìm kiếm danh mục" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "Hiện danh mục sản phẩm trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "Tìm kiếm kho" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "Hiện hàng hóa ở kho trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "Ẩn hàng hóa trong kho không có sẵn" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "Không bao gồm hàng hóa trong kho mà không sẵn sàng từ màn hình xem trước tìm kiếm" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "Tìm kiếm vị trí" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "Hiện vị trí kho hàng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "Tìm kiếm công ty" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "Hiện công ty trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "Tìm kiếm đặt hàng xây dựng" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "Hiện đơn đặt xây dựng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "Tìm kiếm đơn đặt mua" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "Hiện đơn đặt mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "Loại trừ đơn đặt mua không hoạt động" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "Loại trừ đơn đặt mua không hoạt động ra khỏi cửa sổ xem trước tìm kiếm" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "Tìm đơn đặt hàng người mua" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "Hiện đơn đặt hàng người mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "Loại trừ đơn đặt hàng người mua không hoạt động" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "Không bao gồm đơn đặt hàng người mua không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "Tìm kiếm đơn hàng trả lại" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "Hiện đơn hàng trả lại trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "Loại trừ đơn hàng trả lại không hoạt động" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "Không bao gồm đơn hàng trả lại không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "Kết quả xem trước tìm kiếm" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "Số kết quả cần hiển thị trong từng phần của cửa sổ xem trước tìm kiếm" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "Tìm kiếm biểu thức" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "Bật tìm kiếm biểu thức chính quy trong câu truy vấn tìm kiếm" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "Tìm phù hợp toàn bộ chữ" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "Truy vấn tìm trả về kết quả phù hợp toàn bộ chữ" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "Hiện số lượng trong biểu mẫu" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "Hiển thị số lượng sản phẩm có sẵn trong một số biểu mẫu" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "Phím escape để đóng mẫu biểu" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "Sử dụng phím escape để đóng mẫu biểu hộp thoại" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "Cố định điều hướng" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "Vị trí thành điều hướng là cố định trên cùng màn hình" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "Định dạng ngày" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "Định dạng ưa chuộng khi hiển thị ngày" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Lập lịch sản phẩm" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "Hiển thị thông tin lịch sản phẩm" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Kiểm kê sản phẩm" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Hiển thị thông tin kiểm kê sản phẩm (nếu chức năng kiểm kê được bật)" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "Độ dài chuỗi trong bảng" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "Giới hạn độ dài tối đa cho chuỗi hiển thị trong kiểu xem bảng biểu" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "Mẫu nhãn sản phẩm mặc định" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "Mẫu nhãn sản phẩm mặc định được chọn tự động" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "Mẫu hàng hóa trong khi mặc định" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "Mẫu nhãn hàng hóa trong kho tự động được chọn" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "Mẫu nhãn vị trí kho mặc định" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "Mẫu nhãn vị trí kho được chọn tự động" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "Nhận báo cáo lỗi" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "Nhận thông báo khi có lỗi hệ thống" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "Số lượng giá phá vỡ" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "Giá" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "Đơn vị giá theo số lượng cụ thể" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "Đầu mối" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "Đầu mối tại điểm webhook được nhận" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "Tên của webhook này" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "Hoạt động" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "Webhook có hoạt động không" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "Chữ ký số" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "Chữ ký số để truy cập" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "Bí mật" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "Mã bí mật dùng chung cho HMAC" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "Mã Tin nhắn" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "Định danh duy nhất cho tin nhắn này" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "Máy chủ" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "Mãy chủ từ tin nhắn này đã được nhận" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "Đầu mục" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "Đầu mục tin nhắn" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "Thân" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "Thân tin nhắn này" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "Đầu mối của tin nhắn này đã nhận được" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "Làm việc vào" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "Công việc trong tin nhắn này đã kết thúc?" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "Mã" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tiêu đề" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "Đã công bố" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Tác giả" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "Tóm tắt" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "Đọc" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "Tin này đã được đọc?" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3548,76 +3547,76 @@ msgstr "Tin này đã được đọc?" msgid "Image" msgstr "Hình ảnh" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "Tệp ảnh" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "Tên đơn vị phải là một định danh hợp lệ" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "Tên đơn vị" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Biểu tượng" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "Biểu tượng đơn vị tùy chọn" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Định nghĩa" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "Định nghĩa đơn vị" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "Mới {verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "Một đơn đặt hàng mới đã được tạo và phân công cho bạn" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} đã bị hủy" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "Một đơn đặt từng được phân công cho bạn đã bị hủy bỏ" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "Mục đã nhận" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "Hàng đã được nhận theo đơn đặt mua" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "Hàng đã nhận theo đơn hàng trả lại" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "Lỗi được thông báo bởi phần mở rộng" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "Tải lên tệp tin" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3625,19 +3624,19 @@ msgstr "Tải lên tệp tin" msgid "Match Fields" msgstr "Khớp trường" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "Khớp hàng hóa" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "Khớp trường thất bại" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "Hàng hóa đã được nhập vào" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3648,186 +3647,186 @@ msgstr "Hàng hóa đã được nhập vào" msgid "Previous Step" msgstr "Bước trước" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "Mô tả công ty" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "Mô tả của công ty" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "Trang web" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "URL trang web của công ty" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "Số điện thoại" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "Số điện thoại liên hệ" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "Địa chỉ email liên hệ" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "Liên hệ" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "Đầu mối liên hệ" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "Liên kết đến thông tin công ty ngoài" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "là khách hàng" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "Bạn có bán hàng cho công ty này?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "là nhà cung cấp" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "Bạn có mua hàng từ công ty này?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "là nhà sản xuất" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "Công ty này có sản xuất sản phẩm?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "Tiền tệ mặc định dùng cho công ty này" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "Doanh nghiêp" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "Chọn doanh nghiệp" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "Tiêu đề địa chỉ" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "Tiêu đề mô tả mục địa chỉ" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "Địa chỉ chính" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "Đặt làm địa chỉ chính" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "Dòng 1" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "Địa chỉ dòng 1" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "Dòng 2" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "Địa chỉ dòng 2" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "Mã bưu chính" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "Thành phố/Vùng" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "Mã bưu chính thành phố/vùng" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "Bang/Tỉnh" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "Bang hay tỉnh" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "Quốc gia" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "Địa chỉ quốc gia" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "Ghi chú vận chuyển" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "Ghi chú dành cho chuyển phát nhanh" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "Ghi chú nội bọ chuyển phát nhanh" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "Ghi chú nội bộ sử dụng cho chuyển phát nhanh" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "Liên kết thông tin địa chỉ (bên ngoài)" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "Sản phẩm cơ bản" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "Chọn sản phẩm" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3837,12 +3836,12 @@ msgstr "Chọn sản phẩm" msgid "Manufacturer" msgstr "Nhà sản xuất" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "Chọn nhà sản xuất" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3852,69 +3851,69 @@ msgstr "Chọn nhà sản xuất" msgid "MPN" msgstr "MPN" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "Mã số nhà sản xuất" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "URL cho liên kết sản phẩm của nhà sản xuất bên ngoài" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "Mô tả sản phẩm của nhà sản xuất" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "Sản phẩm nhà sản xuất" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "Tên tham số" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "Giá trị" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "Giá trị tham số" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "Đơn vị" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "Đơn vị tham số" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "Đơn vị đóng gói phải tương thích với đơn vị sản phẩm cơ bản" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "Đơn vị đóng gói phải lớn hơn không" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu với sản phẩm cơ bản tương tự" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3927,28 +3926,28 @@ msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu vớ msgid "Supplier" msgstr "Nhà cung cấp" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "Chọn nhà cung cấp" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "Đơn vị quản lý kho nhà cung cấp" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "Chọn sản phẩm của nhà sản xuất" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "URL cho liên kết sản phẩm của nhà cung cấp bên ngoài" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "Mô tả sản phẩm nhà cung cấp" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3958,27 +3957,27 @@ msgstr "Mô tả sản phẩm nhà cung cấp" msgid "Note" msgstr "Ghi chú" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "chi phí cơ sở" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "Thu phí tối thiểu (vd: phí kho bãi)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "Đóng gói" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "Đóng gói sản phẩm" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3988,27 +3987,27 @@ msgstr "Đóng gói sản phẩm" msgid "Pack Quantity" msgstr "Số lượng gói" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Tổng số lượng được cung cấp trong một gói đơn. Để trống cho các hàng hóa riêng lẻ." -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "nhiều" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "Đặt hàng nhiều" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "Số lượng có sẵn từ nhà cung cấp" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "Sẵn hàng đã được cập nhật" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "Ngày cập nhật cuối thông tin tồn kho" @@ -4070,10 +4069,10 @@ msgstr "Tải hình ảnh từ URL" msgid "Delete image" msgstr "Xóa ảnh" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4088,7 +4087,7 @@ msgstr "Khách hàng" msgid "Uses default currency" msgstr "Dùng tiền mặc định" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4168,7 +4167,7 @@ msgstr "Kho nhà cung cấp" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "Đơn mua hàng" @@ -4191,7 +4190,7 @@ msgstr "Đơn đặt hàng mới" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "Đơn hàng bán" @@ -4216,7 +4215,7 @@ msgstr "Kho đã được giao" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "Đơn hàng trả lại" @@ -4284,7 +4283,7 @@ msgstr "Chưa có thông tin nhà sản xuất" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "Nhà cung cấp" @@ -4333,7 +4332,7 @@ msgid "Addresses" msgstr "Địa chỉ" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4382,8 +4381,8 @@ msgstr "Xóa sản phẩm nhà cung cấp" msgid "No supplier information available" msgstr "Chưa có thông tin nhà cung cấp" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4432,16 +4431,16 @@ msgstr "Liên kết mã vạch đến hàng hóa nhà cung cấp" msgid "Update Part Availability" msgstr "Cập nhật sự sẵn sàng sản phẩm" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "Hàng trong kho" @@ -4474,11 +4473,11 @@ msgstr "Doanh nghiệp" msgid "New Company" msgstr "Doanh nghiệp mới" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "Tên nhãn" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "Mô tả nhãn" @@ -4490,7 +4489,7 @@ msgstr "Nhãn" msgid "Label template file" msgstr "Tệp mẫu nhãn" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "Đã bật" @@ -4514,7 +4513,7 @@ msgstr "Chiều cao [mm]" msgid "Label height, specified in mm" msgstr "Chiều cao nhãn, tính theo mm" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "Mẫu tên tệp" @@ -4522,14 +4521,14 @@ msgstr "Mẫu tên tệp" msgid "Pattern for generating label filenames" msgstr "Mẫu dùng để tạo tên tệp nhãn" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "Truy vấn bộ lọc (dùng dấu phẩy ngăn cách các cặp key=value)" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "Bộ lọc" @@ -4546,7 +4545,7 @@ msgstr "Mã QR" msgid "QR code" msgstr "Mã QR" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4555,11 +4554,11 @@ msgstr "Mã QR" msgid "Total Price" msgstr "Tổng tiền" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "Không tìm thấy đơn đặt mua phù hợp" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4573,7 +4572,7 @@ msgstr "Không tìm thấy đơn đặt mua phù hợp" msgid "Purchase Order" msgstr "Đơn hàng" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4582,192 +4581,192 @@ msgstr "Đơn hàng" msgid "Return Order" msgstr "Đơn hàng trả lại" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "Không rõ" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "Tổng tiền cho đơn hàng hàng" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "Tiền tệ đơn đặt hàng" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "Tiền tệ cho đơn đặt này (để trống để sử dụng tiền mặc định)" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "Liên hệ không phù hợp với doanh nghiệp đã chọn" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "Mô tả đơn đặt (tùy chọn)" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "Mã dự án đã chọn cho đơn đặt hàng này" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "Liên kết đến trang bên ngoài" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "Ngày mong muốn giao được hàng. Đơn đặt sẽ quá hạn sau ngày này." -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "Tạo bởi" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt này" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "Đầu mối liên hệ của đơn đặt này" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "Địa chỉ công ty cho đơn đặt này" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "Mã đặt hàng" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "Trạng thái đơn đặt mua" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "Doanh nghiệp từ những hàng hóa đang được đặt mua" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "Tham chiếu nhà cung cấp" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "Mã tham chiếu đơn đặt nhà cung cấp" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "nhận bởi" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "Ngày phát hành" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "Ngày đặt hàng đã phát hành" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "Ngày đặt hàng đã được hoàn thiện" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "Nhà cung cấp sản phẩm phải trùng với nhà cung cấp PO" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "Số lượng phải là số dương" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "Doanh nghiệp từ những hàng hóa đang được bán" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "Tham chiếu khách hàng " -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "Mã tham chiếu đơn đặt của khách hàng" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "Ngày giao hàng" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "vận chuyển bằng" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "Đơn đặt hàng không thể hoàn thiện vì chưa có sản phẩm nào được chọn" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "Những đơn hàng đang mở thì sẽ được đánh dấu là hoàn thành" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "Đơn hàng không thể hoàn thành được vì vận chuyển chưa xong" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "Đơn hàng không thể hoàn thành được vì những khoản riêng chưa xong" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "Số lượng mặt hàng" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "Tham chiếu khoản riêng" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "Ghi chú khoản riêng" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "Ngày mục tiêu cho khoản riêng này (để trống để sử dụng ngày mục tiêu từ đơn đặt)" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "Mô tả khoản riêng (tùy chọn)" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "Ngữ cảnh" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "Ngữ cảnh bổ sung" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "Đơn giá" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "Sản phẩm nhà cung cấp phải phù hợp với nhà cung cung cấp" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "đã bị xóa" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "Đặt hàng" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "Sản phẩm nhà cung cấp" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4777,261 +4776,261 @@ msgstr "Sản phẩm nhà cung cấp" msgid "Received" msgstr "Đã nhận" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "Số mục đã nhận" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "Giá mua" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "Giá đơn vị mua" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "Có phải người mua hàng muốn mặt hàng này được tích trữ?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "Không thể gán sản phẩm ảo vào trong đơn đặt bán hàng" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "Chỉ có thể gán sản phẩm có thể bán vào đơn đặt bán hàng" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "Giá bán" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "Giá bán đơn vị" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "Số lượng đã vận chuyển" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "Ngày vận chuyển" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "Ngày giao hàng" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "Ngày giao hàng của vận chuyển" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "Kiểm tra bởi" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "Người dùng đã kiểm tra vận chuyển này" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "Vận chuyển" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "Mã vận chuyển" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "Số theo dõi" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "Thông tin theo dõi vận chuyển" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "Mã hóa đơn" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "Số tham chiếu liên kết với hóa đơn" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "Vận đơn đã được gửi đi" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "Vận đơn chưa có hàng hóa được phân bổ" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "Hàng trong kho chưa được giao" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "Không thể phân bổ hàng hóa vào cùng với dòng với sản phẩm khác" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "Không thể phân bổ hàng hóa vào một dòng mà không có sản phẩm nào" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Số lượng phân bổ không thể vượt quá số lượng của kho" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "Số lượng phải là 1 cho hàng hóa sêri" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "Đơn bán hàng không phù hợp với vận đơn" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "Vận đơn không phù hợp với đơn bán hàng" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "Dòng" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "Tham chiếu vận đơn của đơn hàng bán" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "Hàng hóa" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "Chọn hàng trong kho để phân bổ" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "Nhập số lượng phân kho" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "Tham chiếu đơn hàng trả lại" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "Công ty có hàng hóa sẽ được trả lại" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "Trạng thái đơn hàng trả lại" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "Chỉ hàng hóa thêo sêri mới có thể được gán vào đơn hàng trả lại" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "Chọn hàng hóa để trả lại từ khách hàng" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "Ngày nhận được" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "Ngày mà hàng hóa trả lại đã được nhận" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "Kết quả" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "Kết quả cho hàng hóa dòng này" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "Chi phí gắn với hàng trả lại hoặc sửa chữa cho dòng hàng hóa này" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "Đơn đặt không thể bị hủy" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "Cho phép đơn đặt phải đóng lại cùng với các mục dòng hàng hóa chưa hoàn thành" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "Đơn đặt có dòng hàng hóa chưa hoàn thành" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "Đơn đặt là không được mở" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "Tiền tệ giá mua" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "Sản phẩm nhà cung cấp phải được chỉ định" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "Đơn đặt mua phải được chỉ định" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "Nhà cung cấp phải phù hợp với đơn đặt mua" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "Đơn đặt mua phải phù hợp với nhà cung cấp" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "Mục dòng" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "Mục dòng không phù hợp với đơn đặt mua" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "Chọn vị trí đích cho hàng hóa đã nhận" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "Nhập mã lô cho hàng trong kho đang đến" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "Nhập số sê ri cho hàng trong kho đang đến" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "Mã vạch" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "Mã vạch đã quét" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "Mã vạch đã được dùng" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "Cần điền số nguyên cho sản phẩm có thể theo dõi" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "Dòng hàng hóa phải được cung cấp" @@ -5043,51 +5042,51 @@ msgstr "Vị trí đích phải được chỉ ra" msgid "Supplied barcode values must be unique" msgstr "Giá trị mã vạch đã cung cấp phải duy nhất" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "Tiền tệ giá bán" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "Chưa cung cấp thông tin vận chuyển" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "Dòng hàng hóa chưa được gắn với đơn đặt này" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "Số lượng phải là số dương" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "Nhập số sê ri để phân bổ" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "Vận đơn đã được chuyển đi" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "Vận đơn không được gắn với đơn đặt này" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "Không tìm thấy số sê ri sau đây" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "Những số sê ri sau đây đã được phân bổ" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "Dòng riêng biệt đơn hàng trả lại" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "Line item không phù hợp với đơn hàng trả lại" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "Line item đã nhận được" @@ -5095,24 +5094,24 @@ msgstr "Line item đã nhận được" msgid "Items can only be received against orders which are in progress" msgstr "Hàng hóa chỉ có thể được nhận theo đơn hàng đang trong tiến trình" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "Tiền tệ giá đồng hạng" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "Đơn đặt mua quá hạn" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "Đơn đặt mua {po} quá hạn" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "Đơn bán hàng quá hạn" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "Đơn bán hàng {so} đã quá hạn" @@ -5481,579 +5480,579 @@ msgstr "Lô hàng mới" msgid "Match Supplier Parts" msgstr "Khớp sản phẩm nhà cung cấp" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "Đơn hàng bán không thấy" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "Không tìm thấy giá" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "Cập nhật {part} giá đơn vị đến {price}" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "Cập nhật {part} giá đơn vị đến {price} và số lượng đến {qty}" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "ID sản phẩm" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "Tên sản phẩm" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "Mô tả sản phẩm" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "IPN" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "Phiên bản" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "Từ khóa" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "Ảnh sản phẩm" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "ID danh mục" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "Tên danh mục" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "ID vị trí mặc định" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "ID nhà cung ứng mặc định" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "Biến thể của" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "Kho tối thiểu" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "Còn hàng" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "Bật đơn hàng" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "Sử dụng trong" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "Đang dựng" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "Chi phí tối thiểu" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "Chi phí tối đa" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "ID cha" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "Tên cha" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "Đưỡng dẫn danh mục" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "Nguyên liệu" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "Cấp độ BOM" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "ID hàng hóa BOM" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "IPN cha" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "IPN sản phẩm" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "Giá thấp nhất" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "Giá cao nhất" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "Đơn đặt mua vào" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "Đơn hàng bán ra" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "Kho sản xuất bởi Đơn đặt bản dựng" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "Kho được yêu cầu cho đơn đặt bản dựng" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "Hợp lệ" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "Xác minh toàn bộ hóa đơn vật liệu" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "Tùy chọn này phải được chọn" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "Điểm bán mặc định" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "Tổng số lượng" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "Số hàng tồn" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "Số lượng đầu ra cho tính toán giá bán" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Danh mục sản phẩm" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "Danh mục sản phẩm" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "Vị trí mặc định cho sản phẩm trong danh mục này" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "Cấu trúc" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "Hàng hóa không được gán trực tiếp vào danh mục có cấu trúc nhưng có thể được gán vào danh mục con." -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "Từ khóa mặc định" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "Từ khóa mặc định cho sản phẩm trong danh mục này" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "Biểu tượng" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "Biểu tượng (tùy chọn)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "Bạn không thể thay đổi cấu trúc nhóm sản phẩm này vì một số sản phẩm đã được gắn với nó rồi!" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "Lựa chọn sai cho sản phẩm cha" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "Không thể dùng sản phẩm '{self}' trong BOM cho '{parent}' (đệ quy)" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "Sản phẩm '{parent}' được dùng trong BOM cho '{self}' (đệ quy)" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "IPN phải phù hợp mẫu biểu thức chính quy {pattern}" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "Hàng trong kho với số sê ri này đã tồn tại" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN trùng lặp không được cho phép trong thiết lập sản phẩm" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "Sản phẩm với Tên, IPN và Duyệt lại đã tồn tại." -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "Sản phẩm không thể được phân vào danh mục sản phẩm có cấu trúc!" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "Tên sản phẩm" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "Là Mẫu" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "Sản phẩm này có phải là sản phẩm mẫu?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "Đây có phải là 1 biến thể của sản phẩm khác?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "Mô tả (không bắt buộc)" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong kết quả tìm kiếm" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "Danh mục" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "Danh mục sản phẩm" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "Mã sản phẩm nội bộ" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "Số phiên bản hoặc bản duyệt lại sản phẩm" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "Hàng hóa này sẽ được cất vào đâu?" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "Nhà cung ứng mặc định" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "Nhà cung ứng sản phẩm mặc định" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "Hết hạn mặc định" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "Thời gian hết hạn (theo ngày) để nhập kho hàng hóa cho sản phẩm này" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "Cấp độ kho tối thiểu được phép" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "Đơn vị đo cho sản phẩm này" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "Sản phẩm này có thể được dựng từ sản phẩm khác?" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "Sản phẩm này có thể dùng để dựng các sản phẩm khác?" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "Sản phẩm này có đang theo dõi cho hàng hóa duy nhất?" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "Sản phẩm này có thể mua được từ nhà cung ứng bên ngoài?" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "Sản phẩm này có thể được bán cho khách hàng?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "Sản phẩm này đang hoạt động?" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "Đây là sản phẩm ảo, ví dụ như sản phẩm phần mềm hay bản quyền?" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "Giá trị tổng kiểm BOM" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "Giá trị tổng kiểm BOM đã được lưu" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "BOM kiểm tra bởi" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "Ngày kiểm tra BOM" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "Tạo người dùng" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "Trách nhiệm chủ sở hữu cho sản phẩm này" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "Kiểm kê cuối cùng" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "Bán nhiều" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "Tiền được dùng để làm đệm tính toán giá bán" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "Chi phí BOM tối thiểu" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối thiểu" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "Chi phí BOM tối đa" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối đa" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "Chi phí mua vào tối thiểu" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "Chi phí mua vào tối thiểu trong lịch sử" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "Chi phí mua tối đa" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "Chi phí thành phần sản phẩm tối đa trong lịch sử" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "Giá nội bộ tối thiểu" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "Chi phí tối thiểu dựa trên phá vỡ giá nội bộ" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "Giá nội bộ tối đa" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "Chi phí tối đa dựa trên phá vỡ giá nội bộ" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "Giá nhà cung ứng tối thiểu" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "Giá sản phẩm tối thiểu từ nhà cung ứng bên ngoài" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "Giá nhà cung ứng tối đa" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "Giá sản phẩm tối đã từ nhà cung ứng bên ngoài" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "Giá trị biến thể tối thiểu" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "Chi phí tối thiểu của sản phẩm biến thể đã tính" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "Chi phí biến thể tối đa" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "Chi phí tối đa của sản phẩm biến thể đã tính" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "Ghi đề chi phí tối thiểu" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "Ghi đề chi phí tối đa" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "Chi phí tối thiểu tính toán tổng thể" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "Chi phí tối đa tính toán tổng thể" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "Giá bán thấp nhất" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "Giá bán tối thiểu dựa trên phá giá" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "Giá bán cao nhất" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "Giá bán cao nhất dựa trên phá giá" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "Chi phí bán hàng tối thiểu" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "Giá bán hàng tối thiểu trong lịch sử" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "Giá bán hàng tối đa" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "Giá bán hàng tối đa trong lịch sử" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "Sản phẩm dành cho kiểm kê" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "Tổng số hàng" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "Số mục kho độc lậo tại thời điểm kiểm kê" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "Tống số kho tại thời điểm kiểm kê" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6065,334 +6064,334 @@ msgstr "Tống số kho tại thời điểm kiểm kê" msgid "Date" msgstr "Ngày" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "Kiểm kê đã thực hiện" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "Ghi chú bổ sung" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "Người dùng đã thực hiện đợt kiểm kê này" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "Chi phí kho tối thiểu" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "Chi phí kho tối thiểu ước tính của kho đang có" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "Chi phí kho tối đa" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "Chi phí kho tối đa ước tính của kho đang có" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "Báo cáo" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "Tệp báo cáo kiểm kê (được sinh nội bộ)" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "Bộ đếm sản phẩm" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "Số sản phẩm đã được bao quát bởi kiểm kê" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "Người dùng đã yêu cầu báo cáo kiểm kê này" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "Chỉ có thể tạo mẫu kiểm thử cho sản phẩm có thể theo dõi" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "Kiểm thử với tên này đã tồn tại cho sản phẩm này" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "Tên kiểm thử" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "Nhập tên cho kiểm thử" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "Mô tả kiểm thử" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "Nhập mô tả cho kiểm thử này" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "Bắt buộc" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "Kiểm thử này bắt buộc phải đạt?" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "Giá trị bắt buộc" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "Kiểm thử này yêu cầu 1 giá trị khi thêm một kết quả kiểm thử?" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "Yêu cầu đính kèm" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "Kiểm thử này yêu cầu tệp đính kèm khi thêm một kết quả kiểm thử?" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "Tham số hộp kiểm tra không thể có đơn vị" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "Tham số hộp kiểm tra không thể có lựa chọn" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "Lựa chọn phải duy nhất" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "Tên tham số mẫu phải là duy nhất" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "Tên tham số" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "Đơn vị vật lý cho tham số này" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "Mô tả tham số" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "Ô lựa chọn" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "Tham số này có phải là hộp kiểm tra?" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "Lựa chọn" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu phẩy)" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "Lựa chọn sai cho giá trị tham số" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "Sản phẩm cha" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Mẫu tham số" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "Dữ liệu" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "Giá trị tham số" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Giá trị mặc định" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "Giá trị tham số mặc định" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "Tên hoặc mã sản phẩm" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "Giá trị mã sản phẩm duy nhất" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "Giá trị IPN sản phẩm" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "Cấp độ" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "Cấp độ BOM" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "Mục BOM" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "Chọn sản phẩm cha" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "Sản phẩm phụ" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "Chọn sản phẩm được dùng trong BOM" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "Số lượng BOM cho mục BOM này" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "Mục BOM này là tùy chọn" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Mục BOM này bị tiêu hao (không được theo dõi trong đơn đặt bản dựng)" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Dư thừa" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Số lượng bản dựng lãng phí ước tính (tuyệt đối hoặc phần trăm)" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "Tham chiếu mục BOM" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "Ghi chú mục BOM" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "Giá trị tổng kiểm" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "Giá trị tổng kiểm dòng BOM" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "Đã xác minh" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "Mục BOM này là hợp lệ" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "Nhận thừa hưởng" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Mục BOM này được thừa kế bởi BOM cho sản phẩm biến thể" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "Cho phép biến thể" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Hàng trong kho cho sản phẩm biến thể có thể được dùng bởi mục BOM này" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "Số lượng phải là giá trị nguyên dùng cho sản phẩm có thể theo dõi được" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "Sản phẩm phụ phải được chỉ định" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "Sảm phẩm thay thế mục BOM" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "Sản phẩm thay thế không thể giống sản phẩm chủ đạo" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "Hàng hóa BOM cha" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "Sản phẩm thay thế" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "Sản phẩm 1" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "Sản phẩm 2" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "Chọn sản phẩm liên quan" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "Không thể tạo mối quan hệ giữa một sản phẩm và chính nó" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "Đã tồn tại mối quan hệ trùng lặp" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "Loại tiền mua hàng của hàng hóa này" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "Chưa chọn sản phẩm" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "Chọn danh mục" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "Sản phẩm gốc" @@ -6404,299 +6403,299 @@ msgstr "Chọn sản phẩm gốc để nhân bản" msgid "Copy Image" msgstr "Sao chép ảnh" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "Sao chép hình ảnh từ sản phẩm gốc" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "Sao chép BOM" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "Sao chép định mức nguyên vật liệu từ sản phẩm gốc" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "Sao chép thông số" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "Sao chép thông tin tham số từ sản phẩm gốc" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "Sao chép ghi chú" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "Sao chép ghi chú từ sản phẩm gốc" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "Số liệu tồn kho ban đầu" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "Chỉ ra số lượng tồn kho ban đầu cho sản phẩm. Nếu điền là không, không thêm kho nào." -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "Vị trí kho ban đầu" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "Chỉ định vị trí kho ban đầu cho sản phẩm này" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "Chọn nhà cung cấp (hoặc để trống để bỏ qua)" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "Chọn nhà sản xuất (hoặc để trống để bỏ qua)" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "Mã số nhà sản xuất" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "Công ty đã chọn không phải là nhà cung ứng hợp lệ" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "Công ty đã chọn không phải là nhà sản xuất hợp lệ" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "Mã số nhà sản xuất khớp với MPN này đã tồn tại" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "Mã số nhà cung cấp khớp với SKU này đã tồn tại" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "Nhân bản sản phẩm" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "Sao chép dữ liệu ban đầu từ sản phẩm khác" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "Số liệu kho ban đầu" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "Tạo sản phẩm với số lượng tồn kho ban đầu" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "Thông tin nhà cung cấp" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "Thêm thông tin nhà cung cấp ban đầu cho sản phẩm này" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "Sao chép thông số nhóm hàng" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "Sao chép mẫu tham số từ nhóm sản phẩm được chọn" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "Ảnh hiện có" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "Tệp hình ảnh không tồn tại" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "Hạn chế báo cáo kiểm kê với sản phẩm riêng biệt và sản phẩm biến thể bất kỳ" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "Hạn chế báo cáo kiểm kê với danh mục sản phẩm riêng biệt và danh mục con bất kỳ" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "Hạn chế báo cáo kiểm kê với vị trí kho riêng biệt và vị trí con bất kỳ" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "Ngoại trừ kho bên ngoài" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "Loại trừ hàng trong kho của vị trí bên ngoài" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "Tạo báo cáo" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "Tạo tệp báo cáo chứa dữ liệu kiểm kê đã tính toán" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "Cập nhật sản phẩm" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "Cập nhật sản phẩm cụ thể với dữ liệu kiểm kê đã tính" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "Chức năng kiểm kê chưa được bật" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "Giá trị tính toán ghi đè cho giá tối thiểu" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "Tiền tế giá tối thiểu" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "Giá trị tính toán ghi đè cho giá tối đa" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "Tiền tế giá tối đa" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "Cập nhật" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "Cập nhật giá cho sản phẩm này" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "Không thể chuyển đổi từ tiền tệ đã cung cấp cho {default_currency}" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "Giá tối thiểu không được lớn hơn giá tối đa" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "Giá tối đa không được nhỏ hơn giá tối thiểu" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "Chọn sản phẩm để sao chép định mức nguyên vật liệu" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "Xóa dữ liệu đã tồn tại" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "Xóa mục BOM đã tồn tại trước khi sao chép" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "Bao gồm thừa hưởng" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "Bao gồm mục BOM được thừa hưởng từ sản phẩm mẫu" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "Bỏ qua dòng không hợp lệ" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "Bật tùy chọn này để bỏ qua dòng không hợp lệ" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "Sao chép sản phẩm thay thế" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "Sao chép sản phẩm thay thế khi nhân bản hàng hóa BOM" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "Dọn dẹp BOM đang tồn tại" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "Xóa mục BOM đang tồn tại trước khi tải lên" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "Chưa chỉ ra cột sản phẩm" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "Tìm thấy nhiều sản phẩm phù hợp" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "Không tìm thấy sản phẩm nào" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "Sản phẩm không được chỉ định như là một thành phần" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "Chưa cung cấp số lượng" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "Số lượng không hợp lệ" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "Buộc phải nhập ít nhất một mục BOM" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "Tổng số lượng" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "Tổng chi phí tối thiểu" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "Tổng chi phí tối đa" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "Báo cáo kiểm kê có sẵn" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "Có sẵn một báo cáo kiểm kê mới để tải về" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "Thông báo sắp hết hàng" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "Kho có sẵn cho {part.name} đã mất dưới mức cấu hình tối thiểu" @@ -6710,14 +6709,16 @@ msgid "The BOM this part has been changed, and must be validated" msgstr "BOM sản phẩm này đã được thay đổi và phải được xác minh" #: part/templates/part/bom.html:17 -#, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +#, fuzzy, python-format +#| msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "BOM cho %(part)s đã được kiểm tra lần cuối bởi %(checker)s vào %(check_date)s" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "BOM cho %(part)s chưa được xác minh." +#, fuzzy +#| msgid "This BOM item has been validated" +msgid "This BOM has not been validated." +msgstr "Mục BOM này là hợp lệ" #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -6828,9 +6829,9 @@ msgid "Add stocktake information" msgstr "Thêm thông tin kiểm kê" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "Kiểm kê" @@ -7238,7 +7239,7 @@ msgstr "Ghi đè định giá sản phẩm" msgid "Edit" msgstr "Sửa" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7367,11 +7368,11 @@ msgstr "Tạo biến thể sản phẩm mới" msgid "Create a new variant part from this template" msgstr "Tạo sản phẩm biến thể mới từ mẫu này" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "Không rõ cơ sở dữ liệu" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" @@ -7379,119 +7380,119 @@ msgstr "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgid "Match References" msgstr "Tham chiếu phù hợp" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "Không thể nhập sản phẩm {new_part.name} bởi vì không có nhóm nào được gán" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "Chọn ảnh sản phẩm" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "Cập nhật ảnh sản phẩm" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "Không tìm thấy ảnh sản phẩm" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "Định giá sản phẩm" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "Chưa chỉ ra hành động cụ thể" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "Không tìm thấy chức năng phù hợp" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "Không tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "Đã tìm thấy dữ liệu mã vạch phù hợp" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "Mã vạch phù hợp với hàng hóa hiện có" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "Không tìm thấy thông tin sản phẩm phù hợp" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "Không tìm thấy sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "Sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "Hàng hóa này đã được nhận" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "Không phù hợp với mã vạch nhà cung cấp" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "Multiple matching supplier parts found" msgid "Multiple matching line items found" msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching line items" msgid "No matching line item found" msgstr "Không thấy hàng hóa phù hợp" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 #, fuzzy #| msgid "Barcode does not match valid stock item" msgid "Barcode does not match an existing stock item" msgstr "Mã vạch không khớp với mặt hàng hợp lệ" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 #, fuzzy #| msgid "Selected stock item does not match BOM line" msgid "Stock item does not match line item" msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "Kho không đủ hạn mức khả dụng" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock item assigned to sales order" msgid "Stock item allocated to sales order" msgstr "Mặt hàng đã được chỉ định vào đơn hàng bán" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "No user information" msgid "Not enough information" msgstr "Không có thông tin người dùng" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp cho mã vạch" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "Tìm thấy nhiều đơn đặt mua phù hợp với '{order}'" @@ -7505,11 +7506,11 @@ msgstr "Không có đơn đặt mua phù hợp với '{order}'" msgid "Purchase order does not match supplier" msgstr "Đơn đặt mua không phù hợp với nhà cung cấp" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "Không tìm thấy mục dòng chờ xử lý cho sản phẩm nhà cung cấp" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "Buộc phải nhập thông tin khác để nhận mục dòng này" @@ -7527,7 +7528,7 @@ msgstr "Thông tin mã vạch đã quét" msgid "Purchase Order to allocate items against" msgstr "Đơn đặt mua để chỉ định hàng hóa" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "Đơn đặt mua không chờ xử lý" @@ -7535,7 +7536,7 @@ msgstr "Đơn đặt mua không chờ xử lý" msgid "PurchaseOrder to receive items against" msgstr "Đơn đặt mua để nhận hàng hóa" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "Đơn đặt mua vẫn chưa được thực hiện" @@ -7543,23 +7544,23 @@ msgstr "Đơn đặt mua vẫn chưa được thực hiện" msgid "Location to receive items into" msgstr "Địa điểm để nhận hàng hóa vào bên trong" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "Không thể chọn một địa điểm có cấu trúc" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 #, fuzzy #| msgid "PurchaseOrder to allocate items against" msgid "Sales Order to allocate items against" msgstr "Đơn đặt mua để chỉ định hàng hóa" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 #, fuzzy #| msgid "Purchase order is not pending" msgid "Sales order is not pending" msgstr "Đơn đặt mua không chờ xử lý" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 #, fuzzy #| msgid "PurchaseOrder to allocate items against" msgid "Sales order line item to allocate items against" @@ -7571,19 +7572,19 @@ msgstr "Đơn đặt mua để chỉ định hàng hóa" msgid "Sales order shipment to allocate items against" msgstr "Đơn đặt mua để chỉ định hàng hóa" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 #, fuzzy #| msgid "Shipment has already been shipped" msgid "Shipment has already been delivered" msgstr "Vận đơn đã được chuyển đi" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 #, fuzzy #| msgid "Quantity to Install" msgid "Quantity to allocate" msgstr "Số lượng để cài đặt" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "In nhãn thất bại" @@ -7596,8 +7597,8 @@ msgid "Provides native support for barcodes" msgstr "Cung cấp hỗ trợ gốc cho mã vạch" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7605,49 +7606,49 @@ msgstr "Cung cấp hỗ trợ gốc cho mã vạch" msgid "InvenTree contributors" msgstr "Người đóng góp InvenTree" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "Thông báo InvenTree" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "Phương thức thông báo ra ngoài đã tích hợp" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "Bật thông báo qua email" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "Cho phép gửi email cho thông báo sự kiện" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "Bật thông báo qua Slack" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "Cho phép gửi tin nhắn qua kênh Slack cho thông báo sự kiện" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "URL webhook đầu vào của Slack" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "URL dùng để gửi tin nhắn đến một kênh của Slack" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "Mở liên kết" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "Trao đổi tiền tệ InvenTree" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "Tích hợp trao đổi tiền tệ mặc định" @@ -7687,7 +7688,7 @@ msgstr "Viền" msgid "Print a border around each label" msgstr "In một viền xung quanh từng nhãn" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "Ngang" @@ -7703,7 +7704,7 @@ msgstr "Máy in tờ nhãn InvenTree" msgid "Arrays multiple labels onto a single sheet" msgstr "Sắp xếp nhiều nhãn trong một tờ đơn" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "Nhãn quá lớn so với khổ giấy" @@ -7763,113 +7764,113 @@ msgstr "Nhà cung cấp hoạt động như 'TME'" msgid "Permission denied: only staff users can install plugins" msgstr "Quyền bị từ chối: chỉ người dùng là nhân viên mới có thể cài đặt phần mở rộng" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "Cài đặt phần mở rộng thành công" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Cài đặt phần bổ sung đến {path}" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "Cài đặt phần bổ sung thất bại" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "Cấu hình phần bổ sung" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "Cấu hình phần bổ sung" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "Khóa" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "Khóa của phần bổ sung" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "Tên của phần bổ sung" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "Là phần bổ sung hoạt động" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "Đã cài đặt" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "Phần bổ sung mẫu" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "Plugin có sẵn" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "Phần bổ sung" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "Phương thức" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "Không tìm thấy tác giả" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "Phần bổ sung '{p}' không tương thích với phiên bản InvenTree hiện tại {v}" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "Phần bổ sung yêu cầu ít nhất phiên bản {v}" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "Phần bổ sung yêu cầu tối đa phiên bản {v}" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "Bật PO" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "Bật chức năng PO trong giao diện InvenTree" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "Khóa API" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "Khóa bắt buộc đê truy cập API bên ngoài" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "Kiểu số" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "Thiết lập con số" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "Thiết lập lựa chọn" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "Một thiết lập với nhiều lựa chọn" @@ -7881,35 +7882,35 @@ msgstr "Phần bổ sung trao đổi tiền tệ mẫu" msgid "InvenTree Contributors" msgstr "Người đóng góp InvenTree" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "URL nguồn" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "Nguồn cấp cho gói - có thể là sổ đăng ký tùy chỉnh hoặc đường dẫn VCS" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "Tên gói" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "Tên của gói bổ sung - có thể còn chứa chỉ dẫn phiên bản" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "Xác nhận cài đặt phần bổ sung" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "Sẽ cài đặt phần bổ sung này vào thực thể hiện tại. Thực thể sẽ chuyển sang chế độ bảo trì." -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "Cài đặt chưa được xác nhận" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "Hoặc là phải cung cấp tên gói của URL" @@ -7921,40 +7922,40 @@ msgstr "Tải lại đầy đủ" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "Buộc tải lại" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "Kích hoạt phần bổ sung" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "Kích hoạt phần bổ sung này" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "Chưa cung cấp đối tượng hợp lệ cho bản mẫu" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "Tệp mẫu '{template}' đang bị lỗi hoặc không tồn tại" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "Báo cáo kiểm tra" @@ -7974,103 +7975,103 @@ msgstr "Pháp lý" msgid "Letter" msgstr "Thư" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "Tên mẫu" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "Tệp mẫu báo cáo" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "Mô tả tệp mẫu báo cáo" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "Số phiên bản báo cáo (tự động tăng)" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "Khổ giấy cho báo cáo PDF" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "Tạo báo cáo theo hướng ngang" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "Quy tắc sinh tên tệp báo cáo" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "Mẫu báo cáo đang bật" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "Truy vấn bộ lọc hàng trong kho (dùng dấu phẩy liệt kê các cặp key=value)" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "Bao gồm các đợt kiểm tra đã lắp đặt" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "Bao gồm kết quả kiểm tra cho hàng trong kho được cài đặt bên trong hàng hóa đã lắp ráp" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "Dựng bộ lọc" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "Dựng bộ lọc truy vấn (dùng dấu phẩy liệt kê các cặp key=value" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "Bộ lọc sản phẩm" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "Bộ lọc truy vấn sản phẩm (dùng dấu phẩy liệt kê các cặp key=value" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "Bộ lọc truy vấn đơn đặt mua" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "Bộ lọc truy vấn đơn hàng bán" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "Bộ lọc truy vấn đơn hàng trả lại" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "Mẫu trích" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "Tệp báo cáo mẫu" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "Mô tả tệp báo cáo mẫu" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "Tài sản" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "Tệp báo cáo tài sản" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "Mô tả tệp báo cáo tài sản" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "bộ lọc truy vấn vị trí kho (dùng dấu phẩy liệt kê các cặp key=value)" @@ -8111,7 +8112,7 @@ msgstr "Tổng cộng" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8137,12 +8138,12 @@ msgid "Test Results" msgstr "Kết quả kiểm tra" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "Thử nghiệm" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "Kết quả" @@ -8168,7 +8169,7 @@ msgid "Installed Items" msgstr "Mục đã cài đặt" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "Sê-ri" @@ -8177,438 +8178,438 @@ msgstr "Sê-ri" msgid "Asset file does not exist" msgstr "Tệp tin tài sản không tồn tại" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "Không tìm thấy tệp hình ảnh" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "thẻ part_image yêu cầu 1 thực thể sản phẩm" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "thẻ company_image yêu cầu một thực thể doanh nghiệp" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "ID địa điểm" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "Tên địa điểm" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "Đường dẫn địa điểm" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "ID mặt hàng" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "Mã trạng thái" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "Sản phẩm nhà cung cấp" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "Tên nhà cung cấp" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "Tên nhà cung cấp" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "ID Khách hàng" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "Đã cài đặt trong" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "ID bản dựng" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "ID đơn hàng bán" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "ID đơn đặt mua" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "Cần xem xét" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "Xóa khi thiếu hụt" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "Ngày hết hạn" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "Địa điểm bên ngoài" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "Cây sản phẩm" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "Ngày hết hạn trước đó" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "Ngày hết hạn sau đó" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "Ế" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "Bắt buộc nhập số lượng" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "Phải cung cấp sản phẩm hợp lệ" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "Sản phẩm nhà cung cấp đã đưa không tồn tại" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "Sản phẩm nhà cung cấp có kích thước đóng gói được định nghĩa nhưng cờ use_pack_size chưa được thiết lập" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "Số sê-ri không thê được cung cấp cho sản phẩm không thể theo dõi" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "Loại vị trí kho hàng" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "Loại vị trí kho hàng" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "Biểu tượng mặc định cho vị trí không được đặt biểu tượng (tùy chọn)" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Kho hàng" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "Vị trí kho hàng" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "Chủ sở hữu" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "Chọn chủ sở hữu" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "Không thể đưa trực tiếp hàng trong kho vào bên trong vị trí kho hàng có cấu trúc, nhưng có thể đặt vào kho con." -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "Bên ngoài" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "Đây là vị trí kho bên ngoài" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "Loại vị trí" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "Loại vị trí kho hàng của địa điểm này" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "Bạn không thể chuyển đổi vị trí kho hàng này thành cấu trúc vì đã có hàng hóa trong kho được đặt vào bên trong nó!" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "Không thể đặt hàng trong kho vào trong địa điểm kho có cấu trúc!" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "Không thể tạo hàng hóa trong kho cho sản phẩm ảo" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "Loại sản phẩm ('{self.supplier_part.part}') phải là {self.part}" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "Số lượng phải là 1 cho hàng hóa với số sê ri" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Số sê ri không thể đặt được nếu số lượng lớn hơn 1" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "Hàng hóa không thể thuộc về chính nó" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "Hàng hóa phải có 1 tham chiếu bản dựng nếu is_building=True" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "Tham chiếu bản dựng không thể trỏ vào cùng một đối tượng sản phẩm" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "Hàng trong kho cha" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "Sản phẩm cơ bản" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "Chọn sản phẩm nhà cung cấp khớp với hàng hóa trong kho này" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "Hàng trong kho này được đặt ở đâu?" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "Đóng gói hàng hóa này được lưu trữ lại" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "Mục này đã được cài đặt trong mục khác?" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "Số sê ri cho mục này" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "Mã lô cho hàng trong kho này" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "Số lượng tồn kho" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "Bản dựng nguồn" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "Bản dựng cho hàng hóa này" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "Tiêu thụ bởi" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "Đơn đặt bản dựng đã dùng hàng hóa này" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "Đơn đặt mua nguồn" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "Đơn đặt mua cho hàng hóa này" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "Đơn hàng bán đích" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "Ngày hết hạn của hàng hóa này. Kho sẽ được nhắc tình trạng hết hạn sau ngày này" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "Xóa khi thiếu hụt" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "Xóa hàng trong kho này khi kho hàng bị thiếu hụt" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "Giá mua riêng lẻ tại thời điểm mua" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "Đã chuyển đổi sang sản phẩm" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "Chưa đặt sản phẩm thành có thể theo dõi" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "Số lượng phải là số nguyên" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "Số lượng không thể vượt quá số lượng trong kho đang có ({self.quantity})" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "Số sêri phải là một danh sách dãy số nguyên" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "Số lượng không khớp với số sêri" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "Số sêri đã tồn tại" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "Hàng trong kho đã được gán vào đơn hàng bán" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "Hàng trong kho đã được cài đặt vào hàng hóa khác" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "Hàng trong kho chứa hàng hóa khác" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "Hàng trong kho đã được gắn với một khách hàng" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "Hàng trong kho hiện đang sản xuất" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "Không thể hợp nhất kho nối tiếp" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "Mặt hàng trùng lặp" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm tương tự" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "Mặt hàng phải tham chiếu đến sản phẩm nhà cung cấp tương tự" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "Mã trạng thái kho phải phù hợp" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "Không thể xóa mặt hàng không ở trong kho" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "Ghi chú đầu vào" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "Phải cung cấp giá trị cho kiểm thử này" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "Phải tải liên đính kèm cho kiểm thử này" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "Tên kiểm thử" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "Kết quả kiểm thử" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "Giá trị đầu ra kiểm thử" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "Đính kèm kết quả kiểm thử" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "Ghi chú kiểm thử" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "Số sêri quá lớn" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "Sử dụng kích thước đóng gói khi thêm: Số lượng được định nghĩa là số của gói" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "Giá mua của mặt hàng, theo đơn vị hoặc gói" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "Nhập số của mặt hàng cần tạo số nối tiếp" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "Số lượng phải không vượt quá số lượng trong kho đang có ({q})" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "Điền số sêri cho hàng hóa mới" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "Vị trí kho đích" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "Trường ghi chú tùy chọn" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "Không thể gán số sêri cho sản phẩm này" @@ -8624,116 +8625,116 @@ msgstr "Số lượng để cài đặt" msgid "Enter the quantity of items to install" msgstr "Nhập số lượng hàng hóa để cài đặt" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "Thêm ghi chú giao dịch (tùy chọn)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "Số lượng cần cài đặt phải ít nhất là 1" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "Mặt hàng không khả dụng" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "Sản phẩm đã chọn không có trong hóa đơn vật liệu" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "Số lượng cần lắp đặt phải không vượt quá số lượng đang có" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "Vị trí đích cho hàng hóa bị gỡ bỏ" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "Chọn sản phẩm để chuyển đổi mặt hàng vào bên trong" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "Sản phẩm đã chọn không phải là tùy chọn hợp lệ để chuyển đổi" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "Không thể chuyển đổi hàng hóa với sản phẩm nhà cung cấp đã gán" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "Vị trí đích dành cho hàng hóa trả lại" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "Chọn mặt hàng để đổi trạng thái" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "Không có mặt hàng nào được chọn" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "Sản phẩm phải có thể bán được" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "Hàng hóa được phân bổ đến một đơn hàng bán" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "Hàng hóa được phân bổ đến một đơn đặt bản dựng" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "Khách hàng được gán vào các mặt hàng" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "Công ty đã chọn không phải là khách hàng" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "Ghi chú phân bổ kho" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "Phải cung cấp danh sách mặt hàng" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "Ghi chú gộp kho" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "Cho phép nhiều nhà cung không khớp" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "Cho phép mặt hàng cùng sản phẩm nhà cung cấp khác phải được gộp" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "Cho phép trạng thái không khớp" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "Cho phép mặt hàng với mã trạng thái khác nhau để gộp lại" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "Cần cung cấp ít nhất hai mặt hàng" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "Giá trị khóa chính mặt hàng" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "Mã trạng thái mặt hàng" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "Ghi chú giao dịch kho" @@ -8954,7 +8955,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "Mặt hàng này hết hạn vào %(item.expiry_date)s" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "Đã hết hạn" @@ -9591,7 +9592,7 @@ msgstr "Tỷ lệ" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "Xóa" @@ -12760,7 +12761,7 @@ msgstr "Lấy" msgid "Add Stock" msgstr "Thêm kho" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "Thêm" @@ -13399,7 +13400,7 @@ msgstr "Hiển thị thông báo" msgid "New Notifications" msgstr "Thông báo mới" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "Quản trị" @@ -13570,31 +13571,31 @@ msgstr "Có" msgid "No" msgstr "Không" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "Người dùng" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "Chọn người dùng được chỉ định cho nhóm này" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "Người dùng sau là thành viên của nhiều nhóm" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "Thông tin cá nhân" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "Quyền" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "Ngày quan trọng" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "Mã thông báo đã bị thu hồi" @@ -13610,15 +13611,15 @@ msgstr "Mã thông báo API" msgid "API Tokens" msgstr "Mã thông báo API" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "Tên mã thông báo" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "Tên tùy chỉnh mã thông báo" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "Ngày hết hạn mã thông báo" @@ -13630,38 +13631,42 @@ msgstr "Xem lần cuối" msgid "Last time the token was used" msgstr "Lần cuối mã thông báo được sử dụng" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "Đã thu hồi" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "Quyền hạn đã đặt" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "Nhóm" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "Xem" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "Quyền để xem mục" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "Quyền để thêm mục" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "Đổi" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "Quyển để sửa mục" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "Quyền để xóa mục" + +#, python-format +#~ msgid "The BOM for %(part)s has not been validated." +#~ msgstr "BOM cho %(part)s chưa được xác minh." diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 75b3194ecb..8034a91e3a 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-12-29 08:49\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "未找到 API 端点" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "用户没有权限查阅当前模型。" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "没有提供数值" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "不能将 {original} 转换到 {unit}" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "提供的数量无效" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "提供的数量无效 ({exc})" @@ -47,22 +47,22 @@ msgstr "提供的数量无效 ({exc})" msgid "Error details can be found in the admin panel" msgstr "在管理面板中可以找到错误详细信息" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "输入日期" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -74,203 +74,203 @@ msgstr "输入日期" msgid "Notes" msgstr "备注" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "值' {name}' 未出现在模式格式中" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "提供的值与所需模式不匹配: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "输入密码" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "输入新密码" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "确认密码" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "确认新密码" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "旧密码" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (再次)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Email 地址确认" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "您必须输入相同的 Email 。" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "所提供的主要电子邮件地址无效。" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "提供的电子邮件域未被核准。" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "注册已禁用。" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "提供的数量无效" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "空序列号字符串" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "复制序列号" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "组范围无效:{group}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "组范围 {group} 超出了允许的数量 ({expected_quantity})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "无效的组序列: {group}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "唯一序列号的数量 ({len(serials)}) 必须与数量 ({expected_quantity}) 匹配" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "从这个值中删除 HTML 标签" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "连接错误" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "服务器响应状态码无效" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "发生异常" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "服务器响应的内容长度值无效" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "图片尺寸过大" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "图片下载超出最大尺寸" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "远程服务器返回了空响应" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "[{site.name}] 登录软件" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "电子邮件" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "元数据必须是 Python dict 对象" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "插件元数据" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "JSON 元数据字段,供外部插件使用" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "格式不正确" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "指定了未知格式的主键" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "缺少必需的格式主键" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "引用字段不能为空" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "引用必须匹配所需的模式" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "参考编号过大" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "缺少文件" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "缺少外部链接" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "附件" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "选择附件" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -281,72 +281,71 @@ msgstr "选择附件" msgid "Link" msgstr "链接" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "链接到外部 URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "注释" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "用户" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "上传日期" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "文件名不能为空!" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "非法的附件目录" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "文件名包含非法字符 '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "缺少文件名扩展" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "使用此文件名的附件已存在" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "重命名文件出错" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "同一个主体下不能有相同名字" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -362,19 +361,19 @@ msgstr "选择无效" msgid "Name" msgstr "名称" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -399,63 +398,63 @@ msgstr "名称" msgid "Description" msgstr "描述信息" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "描述 (可选)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "上级" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "路径" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "Markdown 便笺(可选)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "条形码数据" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "第三方条形码数据" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "条形码哈希" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "条形码数据的唯一哈希" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "发现现有的条形码" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "服务器错误" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "必须是有效数字" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "货币" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "从可用选项中选择货币" @@ -463,16 +462,16 @@ msgstr "从可用选项中选择货币" msgid "You do not have permission to change this user role." msgstr "您没有权限修改此用户角色。" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "只有超级用户可以创建新用户" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "欢迎来到 {current_site.name}" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -483,269 +482,269 @@ msgstr "" "\n" "请使用密码重置功能获取访问权限 (从https://{domain})." -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "文件名" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "无效值" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "数据文件" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "选择要上传的文件" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "不支持的文件类型" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "文件过大" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "在文件中没有找到列" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "在文件中没有找到数据行" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "没有提供数据行" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "没有提供数据列" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "缺少必需的列:'{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "复制列: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "远程图像" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "远程图像文件的 URL" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "未启用从远程 URL下载图像" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "保加利亚语" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "捷克语" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "丹麦语" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "德语" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "希腊语" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "英语" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "西班牙语" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "西班牙语(墨西哥)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "波斯语" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "芬兰语" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "法语" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "希伯来语" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "北印度语" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "匈牙利语" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "葡萄牙语" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "葡萄牙语 (巴西)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "斯洛文尼亚" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "塞尔维亚语" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "中文 (简体)" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "中文 (繁体)" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "后台工作人员检查失败" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "未配置电子邮件后端" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InventTree系统健康检查失败" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "待定" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "已添加" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "完成" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "已取消" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "丢失" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "已退回" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "正在进行" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "已配送" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "需要关注" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "破损" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "已销毁" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "已拒绝" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "隔离" @@ -857,23 +856,23 @@ msgstr "从客户退货" msgid "Production" msgstr "生产中" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "已退回" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "修复" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "替换" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "退款" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "拒绝" @@ -885,11 +884,11 @@ msgstr "无效的物理单位" msgid "Not a valid currency code" msgstr "不是有效的货币代码" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "备损值不能为负数" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "备损不能超过 100%" @@ -897,27 +896,27 @@ msgstr "备损不能超过 100%" msgid "Invalid value for overage" msgstr "无效的备损值" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "编辑用户信息" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "设置密码" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "密码字段必须相匹配。" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "密码错误" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "系统信息" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "关于 InventTree" @@ -925,14 +924,14 @@ msgstr "关于 InventTree" msgid "Build must be cancelled before it can be deleted" msgstr "在删除前必须取消生产" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "消耗品" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -946,14 +945,14 @@ msgstr "可选项" msgid "Tracked" msgstr "已跟踪" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "已分配" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -983,7 +982,7 @@ msgstr "生产订单" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "生产订单" @@ -999,9 +998,9 @@ msgstr "不能更改生产订单零件" msgid "Build Order Reference" msgstr "相关生产订单" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1029,13 +1028,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "此次生产匹配的订单" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1046,7 +1045,7 @@ msgstr "此次生产匹配的订单" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1133,8 +1132,8 @@ msgstr "生产状态" msgid "Build status code" msgstr "生产状态代码" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "批量代码" @@ -1143,7 +1142,7 @@ msgstr "批量代码" msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1158,7 +1157,7 @@ msgstr "预计完成日期" msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "完成日期:" @@ -1176,10 +1175,10 @@ msgid "User who issued this build order" msgstr "发布此生产订单的用户" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1200,7 +1199,7 @@ msgstr "负责此生产订单的用户或群组" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1214,8 +1213,8 @@ msgstr "生产优先级" msgid "Priority of this build order" msgstr "此生产订单的优先级" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1251,9 +1250,9 @@ msgid "Build output does not match Build Order" msgstr "生产产出与订单不匹配" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" @@ -1267,10 +1266,10 @@ msgstr "生产对象" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1280,7 +1279,7 @@ msgstr "生产对象" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1325,11 +1324,11 @@ msgstr "生产项必须指定生产产出,因为主零件已经被标记为可 msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "库存项分配过度" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" @@ -1341,9 +1340,9 @@ msgstr "序列化库存的数量必须是 1" msgid "Selected stock item does not match BOM line" msgstr "选定的库存项与物料清单行不匹配" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1407,8 +1406,8 @@ msgstr "对于可追踪的零件,需要整数型数值" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "需要整数型数值,因为物料清单包含可追踪的零件" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "序列号" @@ -1425,7 +1424,7 @@ msgstr "自动分配序列号" msgid "Automatically allocate required items with matching serial numbers" msgstr "自动为所需项分配对应的序列号" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "以下序列号已存在或无效" @@ -1433,10 +1432,10 @@ msgstr "以下序列号已存在或无效" msgid "A list of build outputs must be provided" msgstr "必须提供生产产出列表" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1474,9 +1473,9 @@ msgid "Location for completed build outputs" msgstr "已完成生产产出的库存地点" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1548,7 +1547,7 @@ msgstr "接受库存项未被完成分配至此生产订单" msgid "Required stock has not been fully allocated" msgstr "所需库存尚未完全分配" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "接受未完成" @@ -1584,11 +1583,11 @@ msgstr "生产行项目" msgid "bom_item.part must point to the same part as the build order" msgstr "物料清单_item.part 必须与生产订单指向相同的零件" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "项目必须在库存中" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "可用量 ({q}) 超出了限制" @@ -1601,7 +1600,7 @@ msgstr "对于被追踪的零件的分配,必须指定生产产出" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "对于未被追踪的零件,无法指定生产产出" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "必须提供分配的项" @@ -1766,8 +1765,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "库存尚未被完全分配到此生产订单" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1804,8 +1803,8 @@ msgid "Completed Outputs" msgstr "产出已完成" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1855,7 +1854,7 @@ msgstr "库存来源" msgid "Stock can be taken from any available location." msgstr "库存可以从任何可用的地点获得。" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "目的地" @@ -1868,7 +1867,7 @@ msgstr "未指定目的地" msgid "Allocated Parts" msgstr "已分配的零件" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2024,19 +2023,19 @@ msgstr "读取文件时发生错误 (尺寸错误)" msgid "Error reading file (data could be corrupted)" msgstr "读取文件时发生错误 (数据可能已损坏)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "文件" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "选择要上传的文件" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "文件 {name.title()}" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "选择 {name} 文件上传" @@ -2049,1041 +2048,1041 @@ msgstr "已更新" msgid "Timestamp of last update" msgstr "最后一次更新时间" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "唯一项目编码" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "项目描述" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "负责此项目的用户或群组" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "设置主键 (必须是唯一的 - 大小写不敏感)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "设定值" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "选择的值不是一个有效的选项" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "值必须是布尔量" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "值必须为整数" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "主键必须是唯一的" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "无群组" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "不允许空域。" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "无效的域名: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "无插件" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "需要重启" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "设置已更改,需要服务器重启" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "待迁移中" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "待处理的数据库迁移数量" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "服务器实例名称" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "服务器实例的字符串描述符" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "用例名称" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "在标题栏上显示实例名称" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "限制显示 `关于` 信息" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "只向超级用户显示 `about` 信息" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "公司名称" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "内部公司名称" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "基本 URL" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "服务器实例的基本 URL" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "默认货币单位" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "选择定价计算的默认货币" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "货币更新间隔时间" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "检查更新的频率(设置为零以禁用)" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "天" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "货币更新插件" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "使用货币更新插件" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "从 URL 下载" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "允许从外部 URL 下载远程图像和文件" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "下载大小限制" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "远程图像的最大允许下载大小" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "用于从 URL 下载的 User-agent" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "允许覆盖用于从外部 URL 下载图像和文件的 user-agent(留空为默认值)" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "严格的 URL 验证" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "验证 URL 时需要 schema 规范" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "需要确认" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "对某些操作需要用户明确确认。" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "树深度" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "树视图的默认树深度。更深的层次可以在需要时进行懒加载。" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "更新检查间隔" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "检查更新的频率(设置为零以禁用)" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "自动备份" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "启用数据库和媒体文件的自动备份" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "自动备份间隔" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "指定自动备份事件之间的天数" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "任务删除间隔" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "后台任务结果将在指定天数后删除" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "错误日志删除间隔" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "指定天数后将删除错误日志" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "通知删除间隔" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "指定天数后将删除用户通知" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "条形码支持" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "在网页界面启用条形码扫描器支持" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "条形码输入延迟" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "条形码输入处理延迟时间" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "支持条形码摄像头" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "允许通过网络摄像头扫描条形码" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "零件修订版本" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "启用零件的修订字段" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "IPN 正则表达式" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "用于匹配零件 IPN 的正则表达式模式" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "允许重复 IPN" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "允许多个零件共享相同的 IPN" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "允许编辑 IPN" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "在编辑零件时允许更改 IPN 值" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "复制零件 物料清单 数据" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "复制零件时默认复制 物料清单 数据" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "复制零件参数数据" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "复制零件时默认复制参数数据" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "复制零件测试数据" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "复制零件时默认复制测试数据" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "复制类别参数模板" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "创建零件时复制类别参数模板" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "模板" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "零件默认为模板" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "组装" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "默认情况下可以从其他组件组装零件" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "组件" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "默认情况下,零件可作为子零件" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "可购买" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "可销售" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "可追踪" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "虚拟" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "商品默认是虚拟的" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "视图中显示导入" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "在一些商品视图中显示导入向导" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "显示相关商品" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "显示与零件相关的零件" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "初始库存数据" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "在添加新零件时允许创建初始库存" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "初始供应商数据" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "在添加新零件时允许创建初始供应商数据" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "零件名称显示格式" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "用于显示零件名称的格式" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "零件类别默认图标" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "零件类别默认图标(空表示没有图标)" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "强制参数单位" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "如果提供了单位,参数值必须与指定的单位匹配" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "最小定价小数位数" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "在呈现定价数据时显示的最小小数位数" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "最大定价小数位数" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "在呈现定价数据时显示的最大小数位数" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "使用供应商定价" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "将供应商的价批发价纳入总体定价计算中" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "采购历史覆盖" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "历史采购订单定价覆盖供应商批发价" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "使用库存项定价" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "使用手动输入的库存数据中的定价进行定价计算" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "库存项目定价时间" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "在计算定价时,不包括超过此天数的库存项" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "使用变体价格" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "在总体定价计算中包括变体价格" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "仅活动的变体" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "仅使用活动的变体零件来计算变体定价" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "定价重建间隔" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "零件定价自动更新之前的天数" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "内部价格" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "启用内部商品价格" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "覆盖内部价格" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "如果可用,用内部价格取代价格范围计算" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "启用标签打印功能" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "在网页界面启用标签打印" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "标签图像 DPI" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "生成图像文件以提供给标签打印插件时的 DPI 分辨率" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "启用报告" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "启用报告生成" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "在调试模式生成报告(HTML输出)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "页面大小" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "启用测试报告" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "启用生成测试报表" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "添加测试报告" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "在打印测试报告时,将测试报告副本附加到相关的库存项" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "全局唯一序列号" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "库存项的序列号必须是全局唯一的" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "自动填充序列号" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "以表格形式自动填写序列号" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "删除已耗尽的库存" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "确定库存项目耗尽时的默认行为" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "批号模板" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "为库存项生成默认批号的模板" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "库存到期" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "启用库存到期功能" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "销售过期库存" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "允许销售过期库存" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "库存过期时间" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "库存项在到期前被视为过期的天数" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "生产过期库存" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "允许用过期的库存生产" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "库存所有权控制" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "启用库存地点和项目的所有权控制" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "库存地点默认图标" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "库存地点默认图标 (空表示没有图标)" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "显示已安装的库存项" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "在库存表中显示已安装的库存项" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "创建订单参考模式" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "生成生产订单参考字段所需的模式" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "启用退货订单" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "在用户界面中启用退货订单功能" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "退货订单参考模式" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "生成退货订单参考字段所需的模式" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "编辑已完成的退货订单" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "允许编辑已完成的退货订单" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "销售订单参照模式" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "生成销售订单参考字段所需参照模式" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "销售订单默认配送方式" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "启用创建销售订单的默认配送功能" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "编辑已完成的销售订单" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "允许在订单配送或完成后编辑销售订单" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "采购订单参考模式" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "生成采购订单参考字段所需的模式" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "编辑已完成的采购订单" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "允许在采购订单已配送或完成后编辑订单" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "启用忘记密码" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "在登录页面启用忘记密码功能" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "启用注册" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "在登录页面启用注册功能" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "启用 SSO" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "在登录页面启用 SSO" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "启用 SSO 注册" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "允许登录页面上的用户通过 SSO 进行自我注册" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "需要邮箱" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "要求用户在注册时提供邮件" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "自动填充 SSO 用户" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "自动从 SSO 帐户数据填写用户详细信息" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "重复电子邮件" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "注册时重复询问用户他们的电子邮件" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "重复输入密码" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "当注册时请用户重复输入密码" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "域名白名单" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "限制注册到某些域名 (逗号分隔,以 @ 开头)" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "注册群组" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "注册时分配给新用户的群组" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "强制启用 MFA" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "用户必须使用多因素安全认证。" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "启动时检查插件" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "检查启动时是否安装了所有插件 - 能在容器环境中启用" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "启用 URL 集成" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "启用插件来添加 URL 路由" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "启用导航集成" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "启用插件集成到导航中" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "启用应用集成" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "启用插件添加应用" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "启用计划集成" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "启用插件来运行预定任务" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "启用事件集成" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "启用插件响应内部事件" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "启用项目编码" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "启用项目编码来跟踪项目" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "盘点功能" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "启用盘点功能以记录库存水平和计算库存值" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "排除外部地点" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "从库存计算中排除外部地点的库存项" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "自动评估周期" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "自动盘点记录之间的天数 (设置为零以禁用)" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "报告删除间隔时间" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "评估报告将在指定天数后删除" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "显示用户全名" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "显示用户全名而非用户名" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "设置主键 (必须是唯一的 - 大小写不敏感" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "隐藏非活动零件" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "在主页显示结果中隐藏非活动零件" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "查看订阅中的零件" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "在主页上显示订阅中的零件" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "查看订阅中的类别" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "在主页上显示订阅中的零件类别" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "显示未验证的物料清单" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "在主页上显示待验证的物料清单" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "显示最近的库存变化" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "在主页显示最近更改的库存项" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "显示低库存" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "在主页上显示低库存项" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "显示已耗尽的库存" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "在主页上显示耗尽的库存项" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "显示所需库存" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "在主页上显示生产所需的库存项" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "显示过期库存" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "在主页上显示过期的库存项" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "显示陈旧库存" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "在主页上显示过期的库存项" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "显示待定的生产" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "在主页上显示待定的生产" @@ -3095,450 +3094,450 @@ msgstr "显示逾期生产" msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "显示未完成的采购订单" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "在主页上显示未完成的采购订单" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "显示过期的采购订单" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "在首页显示逾期的采购订单" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "显示未完成的销售订单" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "在主页上显示未完成的销售订单" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "显示逾期的销售订单" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "在主页上显示逾期的销售订单" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "显示待配送的销售订单" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "在主页上显示待配送的销售订单" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "显示新消息" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "在主页上显示新消息" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "默认的标签打印机" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "配置默认标签打印机" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "内嵌报表显示" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "搜索零件" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "在搜索预览窗口中显示零件" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "搜索供应商零件" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "在搜索预览窗口中显示供应商零件" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "搜索制造商零件" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "在搜索预览窗口中显示制造商零件" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "隐藏非活动零件" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "从搜索预览窗口中排除非活动零件" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "搜索类别" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "在搜索预览窗口中显示零件类别" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "搜索库存" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "在搜索预览窗口中显示库存项" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "隐藏不可用的库存项" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "在搜索预览窗口中排除不可用的库存项" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "搜索位置" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "在搜索预览窗口中显示库存地点" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "搜索公司" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "在搜索预览窗口中显示公司" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "搜索生产订单" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "在搜索预览窗口中显示生产订单" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "搜索采购订单" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "在搜索预览窗口中显示采购订单" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "排除非活动的采购订单" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "从搜索预览窗口排除非活动的采购订单" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "搜索销售订单" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "在搜索预览窗口显示销售订单" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "排除非活动的销售订单" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "从搜索预览窗口排除非活动销售订单" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "搜索退货订单" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "在搜索预览窗口中显示退货订单" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "排除非活动退货订单" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "从搜索预览窗口排除非活动退货订单" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "搜索预览窗口中各部分显示的结果数" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "正则表达式搜索" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "在搜索查询中启用正则表达式" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "全词搜索" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "搜索查询返回完整单词匹配结果" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "Escape 键关闭表单" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "使用 escape 键关闭表单" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "固定导航栏" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "导航栏位置固定为屏幕顶部" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "日期格式" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "首选显示日期格式" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "零件排产" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "显示零件计划信息" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "零件盘点" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "显示零件盘点信息 (如果盘点功能已启用)" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "表字符串长度" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "表视图中显示字符串最大长度" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "默认零件标签模板" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "自动选择零件标签模板" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "默认库存项模板" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "自动选择库存项标签模板" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "默认库存地点标签模板" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "自动选择库存地点标签模板" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "接收错误报告" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "接收系统错误的通知" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "批发价数量" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "价格" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "指定数量的单价" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "端点" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "接收此 Webhook 的端点" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "此Webhook 的名称" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "启用" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "此Webhook 是否激活" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "令牌" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "使用令牌" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "安全码 (Secret)" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "HMAC共享密钥" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "消息ID" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "该消息的唯一标识符" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "主机" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "收到此消息的主机" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "表头" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "此消息的标题" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "正文" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "此消息的正文" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "接收该信息的端点" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "工作于" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "关于此信息的工作是否已完成?" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "ID" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "标题" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "已发布" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "作者" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "概述" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "读取" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "这条消息是否已读?" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3548,76 +3547,76 @@ msgstr "这条消息是否已读?" msgid "Image" msgstr "图片" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "图像文件" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "单位名称必须是有效的标识符" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "单位名称" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "符号:" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "可选的单位符号" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "定义" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "单位定义" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "新建{verbose_name}" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "有新订单被创建并分配给您" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "{verbose_name} 已取消" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "已取消分配给您的订单" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "收到的项目" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "已收到订单中的项目" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "已收到退货订单中的项目" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "插件引起错误" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "上传文件" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3625,19 +3624,19 @@ msgstr "上传文件" msgid "Match Fields" msgstr "匹配字段" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "匹配项" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "字段匹配失败" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "已导入商品" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3648,186 +3647,186 @@ msgstr "已导入商品" msgid "Previous Step" msgstr "上一步" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "公司简介" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "公司简介" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "网站" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "公司网站" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "电话号码" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "联系电话" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "联系人电子邮件" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "联系人" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "联络点" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "链接到外部公司信息" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "是客户" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "您是否向该公司出售商品?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "是供应商" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "您是否从该公司采购商品?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "是制造商" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "该公司制造商品吗?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "该公司使用的默认货币" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "公司" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "选择公司" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "地址标题" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "描述地址条目的标题" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "主要地址" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "设为主要地址" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "第1行" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "地址行1" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "第2行" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "地址行2" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "邮政编码" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "城市/地区" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "邮政编码城市/地区" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "州/省" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "州或省" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "国家/地区" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "地址所在国家" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "快递送货便笺" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "配送接受人的备注" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "内部配送笔记" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "供内部使用的配送便笺" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "链接地址信息 (外部)" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "基础零件" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "选择商品" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3837,12 +3836,12 @@ msgstr "选择商品" msgid "Manufacturer" msgstr "制造商" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "选择制造商" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3852,69 +3851,69 @@ msgstr "选择制造商" msgid "MPN" msgstr "制造商零件编号 (MPN)" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "制造商商品编号" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "外部制造商零件链接的 URL" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "制造商商品描述" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "制造商商品" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "参数名称" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "数值" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "参数值" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "单位" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "参数单位" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "包装单位必须与基础零件单位兼容" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "包装单位必须大于 0" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "链接的制造商零件必须引用相同的基础零件" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3927,28 +3926,28 @@ msgstr "链接的制造商零件必须引用相同的基础零件" msgid "Supplier" msgstr "供应商" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "选择供应商" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "供应商库存量单位" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "选择制造商商品" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "外部供应商商品链接URL" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "供应商商品描述" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3958,27 +3957,27 @@ msgstr "供应商商品描述" msgid "Note" msgstr "备注" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "基本费用" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "打包" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "商品打包" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3988,27 +3987,27 @@ msgstr "商品打包" msgid "Pack Quantity" msgstr "包装数量" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "一个包装所包含的零件个数。留空用于单独包装。" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "多个" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "订购多个" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "供应商的存货数量" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "可用性更新成功" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "可用数据最后更新日期" @@ -4070,10 +4069,10 @@ msgstr "从 URL 下载图片" msgid "Delete image" msgstr "删除图片" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4088,7 +4087,7 @@ msgstr "客户" msgid "Uses default currency" msgstr "使用默认货币" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4168,7 +4167,7 @@ msgstr "供应商库存" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "采购订单" @@ -4191,7 +4190,7 @@ msgstr "新建采购订单" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "销售订单" @@ -4216,7 +4215,7 @@ msgstr "已分配的库存" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "退货订单" @@ -4284,7 +4283,7 @@ msgstr "无可用供应商信息" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "供应商" @@ -4333,7 +4332,7 @@ msgid "Addresses" msgstr "地址" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4382,8 +4381,8 @@ msgstr "删除供应商零件" msgid "No supplier information available" msgstr "没有可用的供应商信息" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4432,16 +4431,16 @@ msgstr "链接条形码与供应商零件" msgid "Update Part Availability" msgstr "更新零件可用性" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "库存项" @@ -4474,11 +4473,11 @@ msgstr "公司" msgid "New Company" msgstr "新建公司信息" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "标签名称" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "标签说明" @@ -4490,7 +4489,7 @@ msgstr "标签" msgid "Label template file" msgstr "标签模板文件" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "已启用" @@ -4514,7 +4513,7 @@ msgstr "高度 [mm]" msgid "Label height, specified in mm" msgstr "标注高度,以毫米为单位。" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "文件名样式" @@ -4522,14 +4521,14 @@ msgstr "文件名样式" msgid "Pattern for generating label filenames" msgstr "生成标签文件名模式" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "查询筛选器 (逗号分隔的键值对列表)" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "筛选器" @@ -4546,7 +4545,7 @@ msgstr "二维码" msgid "QR code" msgstr "二维码" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4555,11 +4554,11 @@ msgstr "二维码" msgid "Total Price" msgstr "总价" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "没有发现采购订单" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4573,7 +4572,7 @@ msgstr "没有发现采购订单" msgid "Purchase Order" msgstr "采购订单" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4582,192 +4581,192 @@ msgstr "采购订单" msgid "Return Order" msgstr "退货订单" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "未知" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "订单总价格" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "订单货币" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "订单交易的货币类型(为空则使用默认值)" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "联系人与所选公司不匹配" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "订单描述(可选)" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "为此订单选择项目编码" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "链接到外部页面" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "预期订单交付日期。超过该日期后订单将逾期。" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "创建者" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "此订单的联系点" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "此订单的公司地址" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "订单参考" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "采购订单状态" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "订购该商品的公司" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "参考供应商" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "供应商订单参考代码" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "接收方" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "签发日期" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "订单签发日期" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "订单完成日期" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "零件供应商必须与采购订单供应商匹配" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "数量必须大于0" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "向其出售该商品的公司" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "客户参考编" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "客户订单参考码" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "配送日期" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "配送人" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "尚未分配零件,因此订单无法完成" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "只有打开订单可以标记为完成" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "由于尚未完成配送,订单无法完成" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "订单无法完成,因为有不完整的行项目" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "项目数量" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "行项目引用" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "行项目注释" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "此行项目的目标日期 (留空以使用从订单起的目标日期)" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "行项目描述 (可选)" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "内容" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "此行的附加内容" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "单价" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "供应商零件必须匹配供应商" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "已删除" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "订单" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "供应商商品" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4777,261 +4776,261 @@ msgstr "供应商商品" msgid "Received" msgstr "已接收" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "收到的项目数目" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "购买单价" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "采购方希望将此物品存放在何处?" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "虚拟零件不能分配销售订单" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "只有可销售产品可以分配销售订单" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "售出价格" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "售出价格单位" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "配送数量" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "配送日期" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "交货日期(订单)" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "交货日期" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "审核人" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "配送审核人" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "配送" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "配送单号" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "跟踪单号" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "配送跟踪信息" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "发票号码" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "与发票相关联的参考号码" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "货物已发出" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "配送没有分配的库存项" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "库存项尚未分配" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "无法将库存项分配给不同零件的行" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "无法将库存分配给没有零件的行" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "分配数量不能超过库存数量" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "序列化库存项的数量必须为 1" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "销售订单与配送不符" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "配送与销售订单不匹配" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "行" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "销售订单配送参考" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "项目" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "选择要分配的库存项" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "输入库存分配数量" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "退货订单参考" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "退还物品的公司" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "退货订单状态" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "只有序列化项目可以分配到退货订单" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "选择要从客户退回的项目" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "收到日期" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "收到此退回项的日期" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "输出" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "此行项目的输出" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "此行项目退货或修理的相关费用" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "无法取消订单" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "允许关闭包含未完成行项目的订单" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "订单有未完成的行项目" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "订单未打开" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "购买价格货币" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "必须指定供应商零件" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "必须指定采购订单" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "供应商必须匹配采购订单" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "采购订单必须匹配供应商" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "行项目" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "行项目与采购订单不匹配" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "选择接收项目的目的地" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "输入入库项目的批号" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "输入入库项目的序列号" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "条形码" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "已扫描条形码" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "条形码已被使用" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "必须为可跟踪的零件提供整数" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "必须提供行项目" @@ -5043,51 +5042,51 @@ msgstr "目标位置必须指定" msgid "Supplied barcode values must be unique" msgstr "提供条形码值必须是唯一的" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "售出价格货币" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "未提供配送详情" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "行项目没有与此订单关联" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "数量必须大于0" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "输入序列号以进行分配" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "已发货" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "发货与此订单无关" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "没有找到匹配下列序列号" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "以下序列号已经分配" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "退货订单行项目" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "行项目与退货订单不匹配" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "已经收到的行项目" @@ -5095,24 +5094,24 @@ msgstr "已经收到的行项目" msgid "Items can only be received against orders which are in progress" msgstr "项目只能根据正在执行的订单接收" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "行价格货币" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "逾期采购订单" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "采购订单 {po} 已逾期" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "逾期的销售订单" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "销售订单 {so} 已逾期" @@ -5481,579 +5480,579 @@ msgstr "新建配送单" msgid "Match Supplier Parts" msgstr "匹配供应商零件" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "未发现销售订单" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "未发现价格" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "更新{part} 单价到{price}" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "更新{part} 单价到 {price} 且更新数量到{qty}" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "商品ID" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "零件名称" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "零件描述" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "内部零件号IPN" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "改版" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "关键词" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "零件图像" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "类别 ID" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "类别名称" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "默认仓储ID" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "默认供应商ID" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "继承自..." -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "最低库存" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "入库" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "已订购" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "用途" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "仓库" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "最低成本" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "最高成本" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "上级编号" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "上级名称" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "类别路径" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "商品" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "物料清单 级别" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "物料清单项目 lD" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "上级内部零件号" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "内部零件号" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "最低价格" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "最高价格" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "收到的采购订单" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "未完成的销售订单" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "由生产订单生成的库存" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "生产订单所需库存" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "有效" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "验证整个材料单" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "必须选择此项" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "默认库存地点" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "总库存" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "可用库存" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "输入用于价格计算的数量" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "商品类别" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "此类别商品的默认库存地点" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "结构性" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "零件可能无法直接分配到结构类别,但可以分配到子类别。" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "默认关键字" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "图标" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "图标(可选)" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "您不能使这个零件类别结构化,因为有些零件已经分配给了它!" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "无效的上级零件选择" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "零件 \"{self}\" 不能用在 \"{parent}\" 的物料清单 (递归)" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "零件 \"{parent}\" 不能用在 \"{self}\" 的物料清单 (递归)" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "{pattern} 内部零件编码正则匹配" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "该序列号库存项己存在" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "与这个名称、内部零件号和修订版的部分已存在。" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "零件不能分配到结构性零件类别!" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "商品名称" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "零件模板" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "这个零件可以作为模板用于生成其他零件吗?" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "这个零件可以继承自另一个已知零件吗?" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "零件描述(可选)" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "类别" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "商品类别" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "内部商品编号" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "此零件通常的存放位置?" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "默认供应商" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "默认到期" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "此零件库存项的过期时间 (天)" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "最低库存数量" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "零件的计数单位" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "这个零件可由其他零件加工而成吗?" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "这个零件可用于创建其他零件吗?" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "这个零件可作为唯一关键字用来搜索吗?" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "这个零件可从外部供应商购买吗?" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "这个零件是否激活?" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "物料清单查实数" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "保存的物料清单校验和" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "物料清单鉴入" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "物料清单日期" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "新建用户" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "此零件的负责人" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "最近库存盘点" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "销售多个商品" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "用于缓存定价计算的货币" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "最低物料清单 成本" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "组件的最低成本" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "物料清单 最高成本" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "组件最高成本" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "最低购买成本" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "最高历史购买成本" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "最大购买成本" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "最高历史购买成本" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "最低内部价格" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "基于内部批发价的最低成本" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "最大内部价格" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "基于内部批发价的最高成本" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "供应商最低价格" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "外部供应商零件的最低价格" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "供应商最高价格" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "外部供应商部分的最高价格" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "最小变体成本" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "计算变量零件的最低成本" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "计算变件零件的最低成本" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "计算变量零件的最大成本" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "覆盖最低成本" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "覆盖最大成本" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "计算总最低成本" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "计算总最大成本" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "最低售出价格" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "基于批发价的最低售出价格" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "最高售出价格" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "基于批发价的最大售出价格" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "最低销售成本" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "历史最低售出价格" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "最高销售成本" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "历史最高售出价格" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "零件盘点" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "项目计数" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "盘点时个别零件存货条目数" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "盘点时可用库存总额" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6065,334 +6064,334 @@ msgstr "盘点时可用库存总额" msgid "Date" msgstr "日期" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "已进行当日盘点" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "附加注释" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "进行此盘点的用户" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "最低库存成本" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "手头存货最低成本估算" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "最高库存成本" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "手头存货最高成本估算" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "报告" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "库存评估报告文件(内部生成)" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "零件计数" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "盘点涵盖的零件数量" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "请求此评估报告的用户" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "只能为可跟踪的零件创建测试模板" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "用该零件已有名称测试" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "测试名" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "输入测试的名称" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "测试说明" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "输入测试的描述" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "必填项" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "要求测试通过?" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "必填值" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "添加测试结果时是否需要一个值?" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "需附件" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "添加测试结果时是否需要文件附件?" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "复选框参数不能有单位" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "复选框参数不能有选项" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "选择必须是唯一的" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "参数模板名称必须是唯一的" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "参数名称" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "此参数的物理单位" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "参数说明:" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "勾选框" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "此参数是否为复选框?" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "选择" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "此参数的有效选择 (逗号分隔)" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "无效的参数值选择" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "上级零件" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "数据" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "参数值" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "默认值" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "默认参数值" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "零件ID或零件名称" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "唯一零件ID 值" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "零件IPN值" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "级" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "物料清单 级别" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "物料清单项" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "选择上级零件" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "子零件" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "选择要用于物料清单 的零件" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "此物料清单项目的数量" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "此物料清单项是可选的" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "此物料清单是消耗品 (它没有在生产订单中被追踪)" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "加班费" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "估计生产物浪费量(绝对值或百分比)" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "物料清单项目引用" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "物料清单 项目注释" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "校验和" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "物料清单较验和" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "已验证" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "此物料清单项目已验证" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "获取继承的" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "此物料清单项目是由物料清单继承的变体零件" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "允许变体" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "变体零件的库存项可以用于此物料清单项目" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "数量必须是可跟踪零件的整数" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "必须指定子零件" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "物料清单项目替代品" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "替代零件不能与主零件相同" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "上级物料清单项目" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "替代部分" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "零件 1" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "零件2" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "选择相关的零件" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "零件关系不能在零件和自身之间创建" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "复制关系已经存在" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "购买此库存项的货币" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "没有选定零件" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "选择类别" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "原始零件" @@ -6404,299 +6403,299 @@ msgstr "选择要复制的原始部分" msgid "Copy Image" msgstr "复制图像" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "从原零件复制图像" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "复制物料清单" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "从原始部分复制材料清单" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "复制参数" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "从原始部分复制参数数据" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "复制备注" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "从原始部分复制备注" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "初始化库存数量" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "指定此零件的初始库存数量。如果数量为零,则不添加任何库存。" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "初始化库存地点" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "初始化指定此零件的库存地点" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "选择供应商(或为空)" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "选择生成商(或为空)" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "生产商零件号" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "所选公司不是一个有效的供应商" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "所选公司不是一个有效的制造商" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "此制造商零件编号 (MPN) 的制造商零件已存在" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "匹配此SKU的供应商零件已存在" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "复制零件" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "从另一个零件复制初始数据" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "初始库存" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "创建具有初始库存数量的零件" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "供应商信息" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "添加此部分的初始供应商信息" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "复制类别参数" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "从选择的零件复制参数模版" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "现有的图像" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "现有商品图像的文件名" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "图像不存在" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "限制盘点报告到某个特定零件以及任何变体零件" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "限制盘点报告到某个特定零件类别以及任何子类别" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "限制盘点报告到某个特定零件库存地点以及任何子位置" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "排除外部库存" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "排除外部位置的库存项" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "生成报告" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "生成包含计算出来的盘点数据的报告文件" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "更新零件" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "使用计算出的盘点数据更新指定部分" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "评估功能未启用" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "覆盖估算的最低价格值" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "最低价格货币" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "覆盖估算的最高价格值" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "最高价格货币" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "更新" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "更新这个零件的价格" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "无法将所提供的货币转换为 {default_currency}" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "最低价格不能高于最高价格。" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "最高价格不能低于最低价格" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "选择要复制物料清单的零件" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "移除现有数据" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "复制前删除现有的物料清单项目" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "包含继承的" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "包含从模板零件继承的物料清单项目" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "跳过无效行" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "启用此选项以跳过无效行" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "复制替代零件" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "复制物料清单项目时复制替代零件" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "清除现有的物料清单" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "上传前删除现有的物料清单项目" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "未指定零件列" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "找到多个匹配的零件。" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "没有找到匹配的零件" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "零件未指定为组件" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "未提供数量" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "无效的数量" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "至少需要一个物料清单项目" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "总数量" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "总费用最小值" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "总费用最大值" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "库存盘点报告可用" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "有新的库存盘点报告可供下载" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "低库存通知" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "可用 {part.name}库存已经跌到设置的最低值" @@ -6710,14 +6709,16 @@ msgid "The BOM this part has been changed, and must be validated" msgstr "此物料清单中零件已被更改,必须验证" #: part/templates/part/bom.html:17 -#, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +#, fuzzy, python-format +#| msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "The 物料清单 for %(part)s 的物料清单被%(checker)s 在 %(check_date)s 最后更改" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "%(part)s 的物料清单己失效" +#, fuzzy +#| msgid "This BOM item has been validated" +msgid "This BOM has not been validated." +msgstr "此物料清单项目已验证" #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -6828,9 +6829,9 @@ msgid "Add stocktake information" msgstr "添加盘点信息" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "库存盘点" @@ -7238,7 +7239,7 @@ msgstr "覆盖零件价格" msgid "Edit" msgstr "编辑" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7367,11 +7368,11 @@ msgstr "创建新的零件变体" msgid "Create a new variant part from this template" msgstr "从此模板创建一个新的零件模板" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "未知的数据库" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" @@ -7379,107 +7380,107 @@ msgstr "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgid "Match References" msgstr "匹配参考" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "无法导入 {new_part.name} 零件,因为没有类别指派。" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "选择商品图像" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "更新商品图像" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "未找到商品图像" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "商品价格" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "未指定操作" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "找到匹配条形码数据" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "条形码匹配现有项目" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "没有找到匹配的零件数据" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "没有找到匹配的供应商零件" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "找到多个匹配的供应商零件" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "匹配供应商零件" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "项目已被接收" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "供应商条形码没有匹配" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "找到多个匹配的行项目" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "未找到匹配的行项目" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "条形码与现有的库存项不匹配" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "库存项与行项目不匹配" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "可用库存不足" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "库存项已分配到销售订单" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "没有足够的信息" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "发现多个匹配的供应商条目条形码" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "找到多个匹配的采购订单 '{order}'" @@ -7493,11 +7494,11 @@ msgstr "没有找到匹配的采购订单 '{order}'" msgid "Purchase order does not match supplier" msgstr "采购订单不匹配供应商" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "未找到供应商零件待处理行项目" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "需要更多信息以接收行项目" @@ -7513,7 +7514,7 @@ msgstr "已扫描条形码" msgid "Purchase Order to allocate items against" msgstr "根据采购订单以分配项目" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "采购订单未处理" @@ -7521,7 +7522,7 @@ msgstr "采购订单未处理" msgid "PurchaseOrder to receive items against" msgstr "根据采购订单以接收项目" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "采购订单尚未提交" @@ -7529,19 +7530,19 @@ msgstr "采购订单尚未提交" msgid "Location to receive items into" msgstr "项目接收地点" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "无法选择一个结构性位置" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "根据销售订单以分配项目" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "销售订单未挂起" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "根据销售订单行项目分配项目" @@ -7549,15 +7550,15 @@ msgstr "根据销售订单行项目分配项目" msgid "Sales order shipment to allocate items against" msgstr "根据销售订单配送分配项目" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "已交付" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "待分配数" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "标签打印失败" @@ -7570,8 +7571,8 @@ msgid "Provides native support for barcodes" msgstr "提供条形码本地支持" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7579,49 +7580,49 @@ msgstr "提供条形码本地支持" msgid "InvenTree contributors" msgstr "InventTree 贡献者" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "Inventree 通知" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "集成输出通知方法" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "启用电子邮件通知" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "允许发送事件通知邮件" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "启用黑名单通知" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "允许发送事件通知的 slack 频道消息" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "Slack传入Webhook url" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "用于发送消息到slack的 URL" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "打开链接" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "InventTree 货币兑换" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "默认货币兑换集成" @@ -7661,7 +7662,7 @@ msgstr "边框" msgid "Print a border around each label" msgstr "打印每个标签的边框" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "横向" @@ -7677,7 +7678,7 @@ msgstr "库存树标签工作表" msgid "Arrays multiple labels onto a single sheet" msgstr "单张纸上的组合多个标签" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "标签大过页面" @@ -7737,113 +7738,113 @@ msgstr "充当为“LCSC”的供应商。" msgid "Permission denied: only staff users can install plugins" msgstr "权限被拒绝:只有员工可以安装插件" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "插件安装成功" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "插件安装到 {path}" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "插件安装失败" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "插件配置" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "插件配置" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "键" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "插件的键" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "插件名称" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "插件是否激活" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "已安装" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "示例插件" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "内置插件" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "插件" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "方法" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "未找到作者" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "插件 '{p}' 与当前 InvenTree 版本{v} 不兼容" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "插件所需最低版本 {v}" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "插件要求高于版本 {v}" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "启用 SSO" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "在 InventTree 界面中启用采购功能" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "API Key" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "访问外部 API 所需的密钥" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "数字化" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "数值设置" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "选择设置" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "带有多个选项的设置" @@ -7855,35 +7856,35 @@ msgstr "货币兑换插件示例" msgid "InvenTree Contributors" msgstr "InventTree 贡献者" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "源URL" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "软件包的来源 - 这可以是自定义注册表或 VCS 路径" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "程序包名称" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "插件包名称 - 也可以包含版本指示器" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "确认插件安装" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "这将把这个插件安装到当前实例中。这个实例将进行维护。" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "安装尚未确认" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "必须提供 URL 的软件包名称" @@ -7895,40 +7896,40 @@ msgstr "完全重载" msgid "Perform a full reload of the plugin registry" msgstr "执行插件库的完整重载" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "强制重载" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "强制重载插件库,即使已经加载" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "收集插件" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "收集插件并添加到注册表中" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "激活插件" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "激活此插件" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "模板文件'{template}' 丢失或不存在" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "测试报告" @@ -7948,103 +7949,103 @@ msgstr "法律条款" msgid "Letter" msgstr "字母" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "模版名称" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "报告模板文件" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "报告模板描述" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "报告版本号 (自动增量)" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "PDF 报告的页面大小" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "横向渲染报告" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "生成标签文件名模式" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "已启用报表模板" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "库存项查询筛选器 (逗号分隔的键值对列表)" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "包括已安装的测试" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "包含组装物品内安装的库存项的测试结果" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "生产过滤器" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "查询筛选器 (逗号分隔的键值对列表)" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "商品过滤器" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "零件查询筛选器 (逗号分隔的键值对列表)" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "采购订单查询筛选器" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "销售订单查询筛选器" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "退货订单查询筛选器" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "代码片段" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "报告代码片段" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "代码片段文件描述" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "资产" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "报告代码片段文件" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "代码片段文件描述" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "库存零件位置查询筛选器 (逗号分隔的键值对列表)" @@ -8085,7 +8086,7 @@ msgstr "总计" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8111,12 +8112,12 @@ msgid "Test Results" msgstr "测试结果" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "测试" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "结果" @@ -8142,7 +8143,7 @@ msgid "Installed Items" msgstr "已安装的项目" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "系列" @@ -8151,440 +8152,440 @@ msgstr "系列" msgid "Asset file does not exist" msgstr "Asset文件不存在" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "找不到图像文件" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "parpart_image 标签需要一个零件实例" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "公司图像标签需要一个公司实例" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "位置 ID" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "位置名称" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "位置路径" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "库存项 ID" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "状态代码" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "供应商商品ID" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "供应商ID" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "供应商名称;" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "客户 ID" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "已安装" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "生产 ID" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "销售订单ID" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "采购订单 ID" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "需要审核" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "在消耗品上删除" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "到期日期" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "外部位置" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "零件树" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "过期日期前" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "过期日期后" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "过期" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "请先输入数量!" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "必须提供有效的零件" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "给定的供应商零件不存在" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" "供应商零件有定义的包装大小,但 use_pack_size 标志\n" "未设置" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "不能为不可跟踪的零件提供序列号" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "库存地点类型" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "库存地点类型" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "为所有没有图标的位置设置默认图标(可选)。" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "库存地点" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "库存地点" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "所有者" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "选择所有者" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "库存项可能不直接位于结构库存地点,但可能位于其子地点。" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "外部的" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "这是一个外部库存地点" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "位置类型" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "该位置的库存地点类型" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "您不能将此库存地点设置为结构性,因为某些库存项已经位于它!" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "库存项不能存放在结构性库存地点!" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "无法为虚拟零件创建库存项" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "零件类型 ('{self.supplier_part.part}') 必须为{self.part}" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "数量必须是带序列号的条目的 1" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "如果数量大于1,则不能设置序列号" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "项目不能属于自己。" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "如果是生产=True的话,项目必须有生产参考" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "生产引用没有指向同一部分对象" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "上级库存项" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "基础零件" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "请为此零件选择一个供应商" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "此库存项的位置?" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "此库存项包装存储在" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "这个项目是否安装在另一个项目中?" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "此条目的序列号" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "此库存项的批号" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "库存量" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "源生产:" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "此库存项的生产" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "消耗者" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "消耗该库存项的生产订单" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "采购订单源" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "此库存项的采购订单" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "目标销售订单" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "库存项的有效期。超过此日期,库存将被视为过期" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "耗尽时删除" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "当库存耗尽时删除此库存项" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "购买时单个单位购买价格" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "转换为零件" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "零件未设置为可跟踪" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "数量必须是整数" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "数量不得超过现有库存量 ({self.quantity})" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "序列号必须是整数列表" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "数量不匹配序列号" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "序列号已存在" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "库存项已分配到销售订单" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "库存项已安装在另一个项目中" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "库存项包含其他项目" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "库存项已分配给客户" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "库存项目前正在生产" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "序列化的库存不能合并" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "复制库存项" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "库存项必须指相同零件" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "库存项必须指相同零件" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "库存状态码必须匹配" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "库存项不能移动,因为它没有库存" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "条目注释" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "必须为此测试提供值" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "测试附件必须上传" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "测试名称" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "测试结果" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "测试输出值" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "测验结果附件" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "测试备注" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "序列号太大" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "添加时使用包大小:数量定义为包数量" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "购买此库存项的价格,件或包" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "输入要序列化的库存项数" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "数量必不可减去 有效库存({q}) 数量" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "输入新项目的序列号" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "目标库存地点" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "可选注释字段" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "序列号不能分配到这个零件" @@ -8600,116 +8601,116 @@ msgstr "要安装的数量" msgid "Enter the quantity of items to install" msgstr "输入要安装的物品数量" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "添加交易备注 (可选)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "要安装的数量必须至少 1 个" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "此库存项不可用" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "选定零件不在该物料清单中" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "要安装的数量不能超过可用数量" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "卸载项目的目标位置" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "选择要将库存项转换成的零件" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "所选零件不是一个有效的转换选项" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "返回物品的目标位置" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "选择要改变状态的库存项" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "没有选择库存项" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "零件必须是可出售的" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "项目被分配到销售订单" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "项目被分配到生产订单" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "客户分配库存项" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "所选公司不是一个有效的供应商" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "库存转让备注" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "必须提供库存项列表" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "库存合并备注" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "允许不匹配的供应商。" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "允许含有不同供应商零件的库存项被合并" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "允许不匹配的状态" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "允许含有不同供应商零件的库存项被合并" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "必须提供至少两个库存项" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "库存项主键值" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "库存项状态代码" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "库存交易便笺" @@ -8930,7 +8931,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "此库存项在 %(item.expiry_date)s 过期" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "已过期" @@ -9567,7 +9568,7 @@ msgstr "评价" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "删除" @@ -12736,7 +12737,7 @@ msgstr "采用" msgid "Add Stock" msgstr "添加库存" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "添加" @@ -13375,7 +13376,7 @@ msgstr "显示通知" msgid "New Notifications" msgstr "新通知" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "管理员" @@ -13546,31 +13547,31 @@ msgstr "确定" msgid "No" msgstr "取消" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "用户" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "选择分配给该群组的用户" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "以下用户是多个群组的成员" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "个人资料" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "权限" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "重要日期" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "Token已重置" @@ -13586,15 +13587,15 @@ msgstr "API 令牌" msgid "API Tokens" msgstr "API 令牌" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "令牌名称" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "自定义令牌名称" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "令牌过期日期" @@ -13606,38 +13607,42 @@ msgstr "上一次查看时间" msgid "Last time the token was used" msgstr "上次使用令牌时" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "撤回" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "权限设置" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "群组" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "视图" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "查看项目权限" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "添加项目权限" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "更改" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "编辑项目权限" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "删除项目权限" + +#, python-format +#~ msgid "The BOM for %(part)s has not been validated." +#~ msgstr "%(part)s 的物料清单己失效" diff --git a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index bf904d931e..7604132952 100644 --- a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: 2023-02-28 22:38\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" @@ -17,32 +17,32 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "未找到 API 端点" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 #, fuzzy #| msgid "No value set" msgid "No value provided" msgstr "未设置值" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 #, fuzzy #| msgid "Invalid quantity provided" msgid "Invalid quantity supplied" msgstr "提供的数量无效" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, fuzzy, python-brace-format #| msgid "Invalid quantity provided" msgid "Invalid quantity supplied ({exc})" @@ -52,22 +52,22 @@ msgstr "提供的数量无效" msgid "Error details can be found in the admin panel" msgstr "在管理面板中可以找到错误详细信息" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "输入日期" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -79,208 +79,208 @@ msgstr "输入日期" msgid "Notes" msgstr "备注" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "值 '{name}' 没有以模式格式显示" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "提供的值与所需模式不匹配: " -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "输入密码" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "输入新密码" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "确认密码" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "确认新密码" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "旧密码" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "Email (再次)" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "Email 地址确认" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "您必须输入相同的 Email 。" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "所提供的主要电子邮件地址无效。" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "提供的电子邮件域未被核准。" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "提供的数量无效" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "空序列号字符串" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "重复的序列号" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, fuzzy, python-brace-format #| msgid "Invalid group range: {g}" msgid "Invalid group range: {group}" msgstr "无效的组范围: {g}" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, fuzzy, python-brace-format #| msgid "Group range {g} exceeds allowed quantity ({q})" msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "组 {g} 超出了允许的数量 ({q})" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, fuzzy, python-brace-format #| msgid "Invalid group sequence: {g}" msgid "Invalid group sequence: {group}" msgstr "无效的组序列: {g}" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "未找到序列号" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 #, fuzzy #| msgid "Number of unique serial numbers ({s}) must match quantity ({q})" msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "从这个值中删除 HTML 标签" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "连接错误" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "服务器响应状态码无效" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "发生异常" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "服务器响应的内容长度值无效" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "图片尺寸过大" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "图像下载超过最大尺寸" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "远程服务器返回了空响应" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "电子邮件" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "格式不正确" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "指定了未知格式密钥" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "缺少必需的格式密钥" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "引用字段不能为空" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "引用必须匹配所需的图案" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "参考编号过大" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "缺少文件" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "缺少外部链接" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "附件" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "选择附件" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -291,72 +291,71 @@ msgstr "选择附件" msgid "Link" msgstr "链接" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "链接到外部 URL" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "注释" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "用户" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "上传日期" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "文件名不能为空!" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "非法的附件目录" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "文件名包含非法字符 '{c}'" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "缺少文件名扩展" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "使用此文件名的附件已存在" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "重命名文件出错" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -372,19 +371,19 @@ msgstr "选择无效" msgid "Name" msgstr "名称" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -409,65 +408,65 @@ msgstr "名称" msgid "Description" msgstr "描述信息" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "描述 (可选)" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "上级项" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "路径" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 #, fuzzy #| msgid "Add transaction note (optional)" msgid "Markdown notes (optional)" msgstr "添加交易备注 (可选)" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "条码数据" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "第三方条形码数据" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "条码哈希" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "条码数据的唯一哈希" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "发现现有条码" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "服务器错误" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "必须是有效数字" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "货币" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -475,16 +474,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -492,275 +491,275 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "文件名" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "无效值" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "数据文件" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "选择要上传的文件" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "不支持的文件类型" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "文件过大" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "在文件中没有找到列" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "在文件中没有找到数据行" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "没有提供数据行" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "没有提供数据列" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "缺少必需的列:'{name}'" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "复制列: '{col}'" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 #, fuzzy #| msgid "Part name" msgid "Remote Image" msgstr "商品名称" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "远程图像文件的 URL" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "未启用从远程 URL下载图像" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 #, fuzzy #| msgid "Hungarian" msgid "Bulgarian" msgstr "匈牙利语" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "捷克语" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "丹麦语" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "德语" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "希腊语" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "英语" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "西班牙语" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "西班牙语(墨西哥)" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "波斯语" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 #, fuzzy #| msgid "Danish" msgid "Finnish" msgstr "丹麦语" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "法语" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "希伯来语" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "匈牙利语" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "葡萄牙语" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "葡萄牙语 (巴西)" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "斯洛文尼亚" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "后台工作人员检查失败" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "未配置电子邮件后端" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "InventTree系统健康检查失败" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "待定" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "已添加" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "完成" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "已取消" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "丢失" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "已退回" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "已发货" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "需要关注" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "破损" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "已销毁" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "已拒绝" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "隔离" @@ -882,27 +881,27 @@ msgstr "从客户退货" msgid "Production" msgstr "生产中" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 #, fuzzy #| msgid "Returned" msgid "Return" msgstr "已退回" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 #, fuzzy #| msgid "Placed" msgid "Replace" msgstr "已添加" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 #, fuzzy #| msgid "Rejected" msgid "Reject" @@ -918,11 +917,11 @@ msgstr "无效值" msgid "Not a valid currency code" msgstr "不是有效的货币代码" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "备损值不能为负数" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "备损不能超过 100%" @@ -930,27 +929,27 @@ msgstr "备损不能超过 100%" msgid "Invalid value for overage" msgstr "无效的备损值" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "编辑用户信息" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "设置密码" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "密码字段必须相匹配。" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "密码错误" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "系统信息" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "关于 InventTree" @@ -958,14 +957,14 @@ msgstr "关于 InventTree" msgid "Build must be cancelled before it can be deleted" msgstr "在删除前必须取消生产" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -979,14 +978,14 @@ msgstr "可选项" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -1016,7 +1015,7 @@ msgstr "生产订单" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "生产订单" @@ -1034,9 +1033,9 @@ msgstr "无法取消订单" msgid "Build Order Reference" msgstr "相关生产订单" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1066,13 +1065,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "此次生产匹配的订单" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1083,7 +1082,7 @@ msgstr "此次生产匹配的订单" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1170,8 +1169,8 @@ msgstr "生产状态" msgid "Build status code" msgstr "生产状态代码" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "批量代码" @@ -1180,7 +1179,7 @@ msgstr "批量代码" msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1195,7 +1194,7 @@ msgstr "预计完成日期" msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "完成日期:" @@ -1213,10 +1212,10 @@ msgid "User who issued this build order" msgstr "发布此生产订单的用户" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1237,7 +1236,7 @@ msgstr "构建此订单的用户或组" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1251,8 +1250,8 @@ msgstr "创建优先级" msgid "Priority of this build order" msgstr "此构建订单的优先级" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1292,9 +1291,9 @@ msgid "Build output does not match Build Order" msgstr "生产产出与订单不匹配" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" @@ -1312,10 +1311,10 @@ msgstr "生产备注" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1325,7 +1324,7 @@ msgstr "生产备注" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1372,11 +1371,11 @@ msgstr "生产项必须指定生产产出,因为主部件已经被标记为可 msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" @@ -1390,9 +1389,9 @@ msgstr "序列化库存的数量必须是 1" msgid "Selected stock item does not match BOM line" msgstr "在BOM中找不到选定的库存项" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1456,8 +1455,8 @@ msgstr "对于可追踪的部件,需要整数型数值" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "需要整数型数值,因为BOM包含可追踪的部件" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "序列号" @@ -1474,7 +1473,7 @@ msgstr "自动分配序列号" msgid "Automatically allocate required items with matching serial numbers" msgstr "自动为所需项分配对应的序列号" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "以下序列号已存在或无效" @@ -1482,10 +1481,10 @@ msgstr "以下序列号已存在或无效" msgid "A list of build outputs must be provided" msgstr "必须提供生产产出列表" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1529,9 +1528,9 @@ msgid "Location for completed build outputs" msgstr "已完成生产产出的仓储地点" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1603,7 +1602,7 @@ msgstr "接受库存项未被完成分配至此生产订单" msgid "Required stock has not been fully allocated" msgstr "所需库存尚未完全分配" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "接受未完成" @@ -1643,11 +1642,11 @@ msgstr "删除参数" msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必须与生产订单指向相同的部件" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "项目必须在库存中" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "可用量 ({q}) 超出了限制" @@ -1660,7 +1659,7 @@ msgstr "对于被追踪的部件的分配,必须指定生产产出" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "对于未被追踪的部件,无法指定生产产出" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "必须提供分配的项" @@ -1827,8 +1826,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "库存尚未被完全分配到此构建订单" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1865,8 +1864,8 @@ msgid "Completed Outputs" msgstr "已完成输出" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1920,7 +1919,7 @@ msgstr "库存来源" msgid "Stock can be taken from any available location." msgstr "库存可以从任何可用的地点获得。" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "目的地" @@ -1933,7 +1932,7 @@ msgstr "目标位置未指定" msgid "Allocated Parts" msgstr "已分配的部件" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2098,19 +2097,19 @@ msgstr "读取文件时出错(不正确的尺寸)" msgid "Error reading file (data could be corrupted)" msgstr "读取文件时出错(数据可能已损坏)" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "文件" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "选择要上传的文件" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "{name.title()} 文件" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "选择 {name} 文件上传" @@ -2123,1073 +2122,1073 @@ msgstr "已更新" msgid "Timestamp of last update" msgstr "最后一次更新时间" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 #, fuzzy #| msgid "Part description" msgid "Project description" msgstr "商品描述" -#: common/models.py:135 +#: common/models.py:143 #, fuzzy #| msgid "User or group responsible for this order" msgid "User or group responsible for this project" msgstr "负责此订单的用户或群组" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "设置键值(必须是唯一的 - 大小写不敏感)" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "设定值" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "选择的值不是一个有效的选项" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "值必须是布尔量" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "值必须为整数" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "关键字必须是唯一的" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "无群组" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "不允许空域。" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "无效的域名: {domain}" -#: common/models.py:1012 +#: common/models.py:1102 #, fuzzy #| msgid "Subcategories" msgid "No plugin" msgstr "子类别" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "需要重启" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "设置已更改,需要服务器重启" -#: common/models.py:1086 +#: common/models.py:1175 #, fuzzy #| msgid "Printing Actions" msgid "Pending migrations" msgstr "打印操作" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "服务器实例名称" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "公司名称" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "内部公司名称" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "天" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 #, fuzzy #| msgid "Enable barcode scanner support" msgid "Enable barcode scanner support in the web interface" msgstr "启用条形码扫描支持" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 #, fuzzy #| msgid "Part description" msgid "Part Revisions" msgstr "商品描述" -#: common/models.py:1291 +#: common/models.py:1342 #, fuzzy #| msgid "Enable internal prices for parts" msgid "Enable revision field for Part" msgstr "启用内部商品价格" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "模板" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "组装" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "组件" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "可购买" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "商品默认可购买" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "可销售" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "商品默认可销售" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "可追踪" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "商品默认可跟踪" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "虚拟" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "商品默认是虚拟的" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "视图中显示导入" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "在一些商品视图中显示导入向导" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "显示相关商品" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 #, fuzzy #| msgid "Parameter units" msgid "Enforce Parameter Units" msgstr "参数单位" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "内部价格" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "启用内部商品价格" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "调试模式" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "在调试模式生成报告(HTML输出)" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "页面大小" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "启用生成测试报表" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "库存到期" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "启用库存到期功能" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "销售过期库存" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "允许销售过期库存" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "库存所有权控制" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 #, fuzzy #| msgid "Select Stock Items" msgid "Show Installed Stock Items" msgstr "选择库存项" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 #, fuzzy #| msgid "Sales Orders" msgid "Enable Return Orders" msgstr "销售订单" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order Reference Pattern" msgstr "相关生产订单" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 #, fuzzy #| msgid "Complete Build Order" msgid "Edit Completed Return Orders" msgstr "生产订单完成" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 #, fuzzy #| msgid "Sales Orders" msgid "Enable project codes" msgstr "销售订单" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 #, fuzzy #| msgid "Exclude Location" msgid "Exclude External Locations" msgstr "排除地点" -#: common/models.py:1868 +#: common/models.py:1881 #, fuzzy #| msgid "Exclude stock items from this selected location" msgid "Exclude stock items in external locations from stocktake calculations" msgstr "从该选定的仓储地点排除库存项" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 #, fuzzy #| msgid "Build to allocate parts" msgid "Hide inactive parts" msgstr "生产以分配部件" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "显示最近商品" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3201,462 +3200,462 @@ msgstr "显示逾期生产" msgid "Show overdue builds on the homepage" msgstr "在主页上显示逾期的生产" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 #, fuzzy #| msgid "Show latest parts on the homepage" msgid "Show pending SO shipments on the homepage" msgstr "在主页上显示最近商品" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "内嵌标签显示" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 #, fuzzy #| msgid "Purchase Orders" msgid "Search Return Orders" msgstr "采购订单" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 #, fuzzy #| msgid "Search" msgid "Regex Search" msgstr "搜索" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "在某些表格中显示可用的商品数量" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 #, fuzzy #| msgid "Select Label Template" msgid "Default part label template" msgstr "选择标签模板" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 #, fuzzy #| msgid "stock items selected" msgid "Default stock item template" msgstr "已选择库存项" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 #, fuzzy #| msgid "No stock location set" msgid "Default stock location label template" msgstr "未设置仓储地点" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "价格" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "令牌" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3666,88 +3665,88 @@ msgstr "" msgid "Image" msgstr "图片" -#: common/models.py:2925 +#: common/models.py:2865 #, fuzzy #| msgid "Image" msgid "Image file" msgstr "图片" -#: common/models.py:2968 +#: common/models.py:2907 #, fuzzy #| msgid "Must be a valid number" msgid "Unit name must be a valid identifier" msgstr "必须是有效数字" -#: common/models.py:2990 +#: common/models.py:2926 #, fuzzy #| msgid "Part name" msgid "Unit name" msgstr "商品名称" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 #, fuzzy #| msgid "Optional Items" msgid "Optional unit symbol" msgstr "可选项目" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 #, fuzzy #| msgid "Destination" msgid "Definition" msgstr "目的地" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 #, fuzzy #| msgid "Received against purchase order" msgid "Items have been received against a return order" msgstr "收到定购单" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "上传文件" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3755,19 +3754,19 @@ msgstr "上传文件" msgid "Match Fields" msgstr "匹配字段" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "匹配项" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "字段匹配失败" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "已导入商品" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3778,204 +3777,204 @@ msgstr "已导入商品" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "公司简介" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "公司简介" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "网站" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "公司网站" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "电话号码" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "联系电话" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "联系人电子邮件" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "联系人" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "链接到外部公司信息" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "是客户" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "您是否向该公司出售商品?" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "是供应商" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "您是否从该公司采购商品?" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "是制造商" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "该公司制造商品吗?" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "该公司使用的默认货币" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "公司" -#: company/models.py:335 +#: company/models.py:378 #, fuzzy #| msgid "Delete Company" msgid "Select company" msgstr "删除该公司" -#: company/models.py:338 +#: company/models.py:383 #, fuzzy #| msgid "Address" msgid "Address title" msgstr "地址" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 #, fuzzy #| msgid "Company address" msgid "Primary address" msgstr "公司地址" -#: company/models.py:344 +#: company/models.py:391 #, fuzzy #| msgid "Contact email address" msgid "Set as primary address" msgstr "联系人电子邮件" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 #, fuzzy #| msgid "Address" msgid "Address line 1" msgstr "地址" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 #, fuzzy #| msgid "Address" msgid "Address line 2" msgstr "地址" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 #, fuzzy #| msgid "Address" msgid "Address country" msgstr "地址" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 #, fuzzy #| msgid "Internal company name" msgid "Internal shipping notes" msgstr "内部公司名称" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 #, fuzzy #| msgid "Description (optional)" msgid "Link to address information (external)" msgstr "描述 (可选)" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "选择商品" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3985,12 +3984,12 @@ msgstr "选择商品" msgid "Manufacturer" msgstr "制造商" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "选择制造商" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -4000,71 +3999,71 @@ msgstr "选择制造商" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "制造商商品编号" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "制造商商品描述" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "制造商商品" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "参数名称" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "数值" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "参数值" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "单位" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "参数单位" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 #, fuzzy #| msgid "Quantity must be greater than zero" msgid "Pack units must be greater than zero" msgstr "数量必须大于0" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -4077,28 +4076,28 @@ msgstr "" msgid "Supplier" msgstr "供应商" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "选择供应商" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "选择制造商商品" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "外部供货商商品链接URL" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "供应商商品描述" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -4108,27 +4107,27 @@ msgstr "供应商商品描述" msgid "Note" msgstr "备注" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "打包" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "商品打包" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -4138,27 +4137,27 @@ msgstr "商品打包" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4222,10 +4221,10 @@ msgstr "从 URL 下载图片" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4240,7 +4239,7 @@ msgstr "客户" msgid "Uses default currency" msgstr "使用默认货币" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4320,7 +4319,7 @@ msgstr "供货商库存" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "采购订单" @@ -4343,7 +4342,7 @@ msgstr "新建采购订单" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "销售订单" @@ -4368,7 +4367,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 #, fuzzy #| msgid "Returned" msgid "Return Orders" @@ -4450,7 +4449,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "供应商" @@ -4503,7 +4502,7 @@ msgid "Addresses" msgstr "地址" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4552,8 +4551,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4602,16 +4601,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "库存项" @@ -4644,11 +4643,11 @@ msgstr "公司" msgid "New Company" msgstr "新建公司信息" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "标签名称" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "标签说明" @@ -4660,7 +4659,7 @@ msgstr "标签" msgid "Label template file" msgstr "标签模板文件" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "已启用" @@ -4684,7 +4683,7 @@ msgstr "高度 [mm]" msgid "Label height, specified in mm" msgstr "标注高度,以毫米为单位。" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "文件名样式" @@ -4692,16 +4691,16 @@ msgstr "文件名样式" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 #, fuzzy #| msgid "Query filters (comma-separated list of key=value pairs)," msgid "Query filters (comma-separated list of key=value pairs)" msgstr "查询筛选器 (逗号分隔的键值对列表)" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "筛选器" @@ -4720,7 +4719,7 @@ msgstr "商品二维码" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4729,11 +4728,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4747,7 +4746,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4758,210 +4757,210 @@ msgstr "" msgid "Return Order" msgstr "已退回" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 #, fuzzy #| msgid "User or group responsible for this order" msgid "Total price for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 #, fuzzy #| msgid "Currency" msgid "Order Currency" msgstr "货币" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 #, fuzzy #| msgid "Build output does not match the parent build" msgid "Contact does not match selected company" msgstr "生产产出与对应生产不匹配" -#: order/models.py:227 +#: order/models.py:260 #, fuzzy #| msgid "Description (optional)" msgid "Order description (optional)" msgstr "描述 (可选)" -#: order/models.py:232 +#: order/models.py:269 #, fuzzy #| msgid "User or group responsible for this order" msgid "Select project code for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:266 +#: order/models.py:314 #, fuzzy #| msgid "Priority of this build order" msgid "Point of contact for this order" msgstr "此构建订单的优先级" -#: order/models.py:275 +#: order/models.py:324 #, fuzzy #| msgid "User or group responsible for this order" msgid "Company address for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "订购该商品的公司" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "数量必须大于0" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "向其出售该商品的公司" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 #, fuzzy #| msgid "Build Order is ready to mark as completed" msgid "Only an open order can be marked as complete" msgstr "构建订单已准备好标记为已完成" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 #, fuzzy #| msgid "Description (optional)" msgid "Line item description (optional)" msgstr "描述 (可选)" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "供应商商品" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4971,269 +4970,269 @@ msgstr "供应商商品" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "销售价格" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order reference" msgstr "相关生产订单" -#: order/models.py:1796 +#: order/models.py:1958 #, fuzzy #| msgid "Company from which the items are being ordered" msgid "Company from which items are being returned" msgstr "订购该商品的公司" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 #, fuzzy #| msgid "Returned from customer" msgid "Select item to return from customer" msgstr "从客户退货" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "无法取消订单" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "条形码" -#: order/serializers.py:539 +#: order/serializers.py:546 #, fuzzy #| msgid "Scan Barcode" msgid "Scanned barcode" msgstr "扫描条形码" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5245,53 +5244,53 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 #, fuzzy #| msgid "Build output does not match Build Order" msgid "Line item does not match return order" msgstr "生产产出与订单不匹配" -#: order/serializers.py:1600 +#: order/serializers.py:1602 #, fuzzy #| msgid "This build output has already been completed" msgid "Line item has already been received" @@ -5301,26 +5300,26 @@ msgstr "此生产产出已经完成" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 #, fuzzy #| msgid "Uses default currency" msgid "Line price currency" msgstr "使用默认货币" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5711,586 +5710,586 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "商品ID" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "关键词" -#: part/admin.py:41 +#: part/admin.py:60 #, fuzzy #| msgid "Part name" msgid "Part Image" msgstr "商品名称" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "类别 ID" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "最低库存" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "类别路径" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "商品" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "默认仓储地点" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "可用库存" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "商品类别" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "商品类别" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "此类别商品的默认仓储地点" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, fuzzy, python-brace-format #| msgid "IPN must match regex pattern {pat}" msgid "IPN must match regex pattern {pattern}" msgstr "IPN 必须匹配正则表达式 {pat}" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "商品名称" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 #, fuzzy #| msgid "Description (optional)" msgid "Part description (optional)" msgstr "描述 (可选)" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "类别" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "商品类别" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "内部商品编号" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "商品版本号" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "默认供应商商品" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "此商品可以销售给客户吗?" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "新建用户" -#: part/models.py:983 +#: part/models.py:1080 #, fuzzy #| msgid "User or group responsible for this order" msgid "Owner responsible for this part" msgstr "负责此订单的用户或群组" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6302,344 +6301,344 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 #, fuzzy #| msgid "Key string must be unique" msgid "Choices must be unique" msgstr "关键字必须是唯一的" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 #, fuzzy #| msgid "Invalid choice for parent build" msgid "Invalid choice for parameter value" msgstr "上级生产选项无效" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "默认值" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "BOM项" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 #, fuzzy #| msgid "Some stock items have been overallocated" msgid "This BOM item has been validated" msgstr "一些库存项已被过度分配" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 #, fuzzy #| msgid "Rejected" msgid "No parts selected" msgstr "已拒绝" -#: part/serializers.py:360 +#: part/serializers.py:359 #, fuzzy #| msgid "Set category" msgid "Select category" msgstr "设置类别" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6651,311 +6650,311 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 #, fuzzy #| msgid "Company Notes" msgid "Copy Notes" msgstr "公司备注" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "复制部件" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "复制类别参数" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 #, fuzzy #| msgid "Existing barcode found" msgid "Existing Image" msgstr "发现现有条码" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 #, fuzzy #| msgid "Part image not found" msgid "Image file does not exist" msgstr "未找到商品图像" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 #, fuzzy #| msgid "Exclude stock items from this selected location" msgid "Exclude stock items in external locations" msgstr "从该选定的仓储地点排除库存项" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 #, fuzzy #| msgid "Uses default currency" msgid "Minimum price currency" msgstr "使用默认货币" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 #, fuzzy #| msgid "Uses default currency" msgid "Maximum price currency" msgstr "使用默认货币" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6972,13 +6971,14 @@ msgstr "一些库存项已被过度分配" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "" +#, fuzzy +#| msgid "Some stock items have been overallocated" +msgid "This BOM has not been validated." +msgstr "一些库存项已被过度分配" #: part/templates/part/category.html:35 msgid "Perform stocktake for this part category" @@ -7089,9 +7089,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7505,7 +7505,7 @@ msgstr "商品价格" msgid "Edit" msgstr "编辑" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7638,11 +7638,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7650,129 +7650,129 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "选择商品图像" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "更新商品图像" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "未找到商品图像" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "商品价格" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "未指定操作" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "找到匹配条形码数据" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 #, fuzzy #| msgid "No matching action found" msgid "No matching part data found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 #, fuzzy #| msgid "No supplier parts found" msgid "No matching supplier parts found" msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 #, fuzzy #| msgid "No supplier parts found" msgid "Multiple matching supplier parts found" msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 #, fuzzy #| msgid "Delete supplier part" msgid "Matched supplier part" msgstr "删除供应商商品" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 #, fuzzy #| msgid "This build output has already been completed" msgid "Item has already been received" msgstr "此生产产出已经完成" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 #, fuzzy #| msgid "No match found for barcode data" msgid "No match for supplier barcode" msgstr "未找到匹配条形码数据" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 #, fuzzy #| msgid "No supplier parts found" msgid "Multiple matching line items found" msgstr "未找到供应商商品" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 #, fuzzy #| msgid "No matching action found" msgid "No matching line item found" msgstr "未找到指定操作" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 #, fuzzy #| msgid "Selected stock item not found in BOM" msgid "Stock item does not match line item" msgstr "在BOM中找不到选定的库存项" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Stock item allocated to sales order" msgstr "分配到生产的数量" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 #, fuzzy #| msgid "No user information" msgid "Not enough information" msgstr "没有用户信息" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7786,11 +7786,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7812,7 +7812,7 @@ msgstr "扫描条形码" msgid "Purchase Order to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 #, fuzzy #| msgid "Purchase Order Settings" msgid "Purchase order is not pending" @@ -7824,7 +7824,7 @@ msgstr "采购订单设置" msgid "PurchaseOrder to receive items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 #, fuzzy #| msgid "Email backend not configured" msgid "Purchase order has not been placed" @@ -7836,25 +7836,25 @@ msgstr "未配置电子邮件后端" msgid "Location to receive items into" msgstr "未指定仓储地点" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 #, fuzzy #| msgid "Create new stock location" msgid "Cannot select a structural location" msgstr "新建仓储地点" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales Order to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales order is not pending" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 #, fuzzy #| msgid "Purchase Order Settings" msgid "Sales order line item to allocate items against" @@ -7866,19 +7866,19 @@ msgstr "采购订单设置" msgid "Sales order shipment to allocate items against" msgstr "采购订单设置" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 #, fuzzy #| msgid "This build output has already been completed" msgid "Shipment has already been delivered" msgstr "此生产产出已经完成" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 #, fuzzy #| msgid "Stock quantity to allocate to build" msgid "Quantity to allocate" msgstr "分配到生产的数量" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7891,8 +7891,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7900,49 +7900,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 #, fuzzy #| msgid "Default currency used for this company" msgid "Default currency exchange integration" @@ -7992,7 +7992,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -8008,7 +8008,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -8080,116 +8080,116 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 #, fuzzy #| msgid "Installed into assembly" msgid "Installed plugin successfully" msgstr "安装到组装中" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, fuzzy, python-brace-format #| msgid "Installed into assembly" msgid "Installed plugin into {path}" msgstr "安装到组装中" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -8203,35 +8203,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "关于 InventTree" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -8243,42 +8243,42 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 #, fuzzy #| msgid "Select supplier" msgid "Collect plugins" msgstr "选择供应商" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -8298,105 +8298,105 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 #, fuzzy #| msgid "Default page size for PDF reports" msgid "Page size for PDF reports" msgstr "PDF 报表默认页面大小" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "商品过滤器" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 #, fuzzy #| msgid "Query filters (comma-separated list of key=value pairs)," msgid "stock location query filters (comma-separated list of key=value pairs)" @@ -8441,7 +8441,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8469,12 +8469,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8502,7 +8502,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8511,460 +8511,460 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 #, fuzzy #| msgid "Part image not found" msgid "Image file not found" msgstr "未找到商品图像" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 #, fuzzy #| msgid "Status" msgid "Status Code" msgstr "状态" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "供应商商品ID" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 #, fuzzy #| msgid "Delete Template" msgid "Delete on Deplete" msgstr "删除模板" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 #, fuzzy #| msgid "Part name" msgid "Part Tree" msgstr "商品名称" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 #, fuzzy #| msgid "Stock Location" msgid "Stock Location type" msgstr "仓储地点" -#: stock/models.py:57 +#: stock/models.py:66 #, fuzzy #| msgid "Stock Locations" msgid "Stock Location types" msgstr "仓储地点" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "仓储地点" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "仓储地点" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 #, fuzzy #| msgid "Location" msgid "Location type" msgstr "地点" -#: stock/models.py:172 +#: stock/models.py:184 #, fuzzy #| msgid "Stock item created" msgid "Stock location type of this location" msgstr "库存项已创建" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, fuzzy, python-brace-format #| msgid "Part type ('{pf}') must be {pe}" msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 #, fuzzy #| msgid "Issued By" msgid "Consumed By" msgstr "发布者" -#: stock/models.py:797 +#: stock/models.py:847 #, fuzzy #| msgid "BuildOrder to which this build is allocated" msgid "Build order which consumed this stock item" msgstr "此次生产匹配的订单" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, fuzzy, python-brace-format #| msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "序列号已存在" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "输入新项目的序列号" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "目标库存位置" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8982,126 +8982,126 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "输入生产产出数量" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "添加交易备注 (可选)" -#: stock/serializers.py:511 +#: stock/serializers.py:510 #, fuzzy #| msgid "Quantity must be a positive number" msgid "Quantity to install must be at least 1" msgstr "数量必须大于0" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 #, fuzzy #| msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgid "Quantity to install must not exceed available quantity" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 #, fuzzy #| msgid "Selected stock item not found in BOM" msgid "Select stock items to change status" msgstr "在BOM中找不到选定的库存项" -#: stock/serializers.py:719 +#: stock/serializers.py:711 #, fuzzy #| msgid "Stock item created" msgid "No stock items selected" msgstr "库存项已创建" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 #, fuzzy #| msgid "Stock item created" msgid "Stock item status code" msgstr "库存项已创建" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -9324,7 +9324,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9981,7 +9981,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "删除" @@ -13364,7 +13364,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "添加" @@ -14039,7 +14039,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "管理员" @@ -14214,33 +14214,33 @@ msgstr "确定" msgid "No" msgstr "取消" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "用户" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "选择分配给该组的用户" -#: users/admin.py:226 +#: users/admin.py:248 #, fuzzy #| msgid "The following users are members of multiple groups:" msgid "The following users are members of multiple groups" msgstr "以下用户是多个群组的成员:" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "个人资料" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "权限" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "重要日期" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -14260,19 +14260,19 @@ msgstr "令牌" msgid "API Tokens" msgstr "令牌" -#: users/models.py:109 +#: users/models.py:107 #, fuzzy #| msgid "Token" msgid "Token Name" msgstr "令牌" -#: users/models.py:110 +#: users/models.py:108 #, fuzzy #| msgid "Company name" msgid "Custom token name" msgstr "公司名称" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -14286,39 +14286,39 @@ msgstr "姓氏" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "权限设置" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "群组" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "视图" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "查看项目权限" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "添加项目权限" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "更改" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "编辑项目权限" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "删除项目权限" diff --git a/InvenTree/locale/zh_hant/LC_MESSAGES/django.po b/InvenTree/locale/zh_hant/LC_MESSAGES/django.po index 1fc956e944..f19bc08f01 100644 --- a/InvenTree/locale/zh_hant/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh_hant/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-29 15:00+0000\n" +"POT-Creation-Date: 2024-01-11 11:18+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,28 +18,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: InvenTree/api.py:160 +#: InvenTree/api.py:164 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:425 +#: InvenTree/api.py:417 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/conversion.py:92 +#: InvenTree/conversion.py:95 msgid "No value provided" msgstr "" -#: InvenTree/conversion.py:125 +#: InvenTree/conversion.py:128 #, python-brace-format msgid "Could not convert {original} to {unit}" msgstr "" -#: InvenTree/conversion.py:127 +#: InvenTree/conversion.py:130 msgid "Invalid quantity supplied" msgstr "" -#: InvenTree/conversion.py:141 +#: InvenTree/conversion.py:144 #, python-brace-format msgid "Invalid quantity supplied ({exc})" msgstr "" @@ -48,22 +48,22 @@ msgstr "" msgid "Error details can be found in the admin panel" msgstr "" -#: InvenTree/fields.py:142 +#: InvenTree/fields.py:140 msgid "Enter date" msgstr "" -#: InvenTree/fields.py:215 InvenTree/models.py:920 build/serializers.py:433 +#: InvenTree/fields.py:209 InvenTree/models.py:951 build/serializers.py:433 #: build/serializers.py:511 build/templates/build/sidebar.html:21 -#: company/models.py:733 company/templates/company/sidebar.html:37 -#: order/models.py:1138 order/templates/order/po_sidebar.html:11 +#: company/models.py:826 company/templates/company/sidebar.html:37 +#: order/models.py:1258 order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 -#: order/templates/order/so_sidebar.html:17 part/admin.py:40 -#: part/models.py:3003 part/templates/part/part_sidebar.html:63 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3148 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:139 stock/models.py:2223 stock/models.py:2331 -#: stock/serializers.py:417 stock/serializers.py:580 stock/serializers.py:674 -#: stock/serializers.py:730 stock/serializers.py:1058 stock/serializers.py:1157 -#: stock/serializers.py:1318 stock/templates/stock/stock_sidebar.html:25 +#: stock/admin.py:224 stock/models.py:2241 stock/models.py:2345 +#: stock/serializers.py:423 stock/serializers.py:576 stock/serializers.py:672 +#: stock/serializers.py:722 stock/serializers.py:1018 stock/serializers.py:1107 +#: stock/serializers.py:1264 stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1259 #: templates/js/translated/company.js:1674 templates/js/translated/order.js:347 #: templates/js/translated/part.js:1080 @@ -75,203 +75,203 @@ msgstr "" msgid "Notes" msgstr "" -#: InvenTree/format.py:154 +#: InvenTree/format.py:164 #, python-brace-format msgid "Value '{name}' does not appear in pattern format" msgstr "" -#: InvenTree/format.py:164 +#: InvenTree/format.py:175 msgid "Provided value does not match required pattern: " msgstr "" -#: InvenTree/forms.py:148 +#: InvenTree/forms.py:128 msgid "Enter password" msgstr "" -#: InvenTree/forms.py:149 +#: InvenTree/forms.py:129 msgid "Enter new password" msgstr "" -#: InvenTree/forms.py:158 +#: InvenTree/forms.py:138 msgid "Confirm password" msgstr "" -#: InvenTree/forms.py:159 +#: InvenTree/forms.py:139 msgid "Confirm new password" msgstr "" -#: InvenTree/forms.py:163 +#: InvenTree/forms.py:143 msgid "Old password" msgstr "" -#: InvenTree/forms.py:200 +#: InvenTree/forms.py:182 msgid "Email (again)" msgstr "" -#: InvenTree/forms.py:204 +#: InvenTree/forms.py:186 msgid "Email address confirmation" msgstr "" -#: InvenTree/forms.py:225 +#: InvenTree/forms.py:209 msgid "You must type the same email each time." msgstr "" -#: InvenTree/forms.py:261 InvenTree/forms.py:267 +#: InvenTree/forms.py:253 InvenTree/forms.py:261 msgid "The provided primary email address is not valid." msgstr "" -#: InvenTree/forms.py:273 +#: InvenTree/forms.py:268 msgid "The provided email domain is not approved." msgstr "" -#: InvenTree/forms.py:384 +#: InvenTree/forms.py:386 msgid "Registration is disabled." msgstr "" -#: InvenTree/helpers.py:452 order/models.py:447 order/models.py:639 +#: InvenTree/helpers.py:457 order/models.py:521 order/models.py:723 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:460 +#: InvenTree/helpers.py:465 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:490 +#: InvenTree/helpers.py:494 msgid "Duplicate serial" msgstr "" -#: InvenTree/helpers.py:523 InvenTree/helpers.py:558 +#: InvenTree/helpers.py:526 InvenTree/helpers.py:569 #, python-brace-format msgid "Invalid group range: {group}" msgstr "" -#: InvenTree/helpers.py:552 +#: InvenTree/helpers.py:557 #, python-brace-format msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:576 InvenTree/helpers.py:583 InvenTree/helpers.py:598 +#: InvenTree/helpers.py:587 InvenTree/helpers.py:594 InvenTree/helpers.py:613 #, python-brace-format msgid "Invalid group sequence: {group}" msgstr "" -#: InvenTree/helpers.py:608 +#: InvenTree/helpers.py:623 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:611 +#: InvenTree/helpers.py:628 msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" msgstr "" -#: InvenTree/helpers.py:740 +#: InvenTree/helpers.py:746 msgid "Remove HTML tags from this value" msgstr "" -#: InvenTree/helpers_model.py:123 +#: InvenTree/helpers_model.py:138 msgid "Connection error" msgstr "" -#: InvenTree/helpers_model.py:127 InvenTree/helpers_model.py:132 +#: InvenTree/helpers_model.py:143 InvenTree/helpers_model.py:150 msgid "Server responded with invalid status code" msgstr "" -#: InvenTree/helpers_model.py:129 +#: InvenTree/helpers_model.py:146 msgid "Exception occurred" msgstr "" -#: InvenTree/helpers_model.py:137 +#: InvenTree/helpers_model.py:156 msgid "Server responded with invalid Content-Length value" msgstr "" -#: InvenTree/helpers_model.py:140 +#: InvenTree/helpers_model.py:159 msgid "Image size is too large" msgstr "" -#: InvenTree/helpers_model.py:152 +#: InvenTree/helpers_model.py:171 msgid "Image download exceeded maximum size" msgstr "" -#: InvenTree/helpers_model.py:157 +#: InvenTree/helpers_model.py:176 msgid "Remote server returned empty response" msgstr "" -#: InvenTree/helpers_model.py:165 +#: InvenTree/helpers_model.py:184 msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/magic_login.py:28 +#: InvenTree/magic_login.py:27 #, python-brace-format msgid "[{site.name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 company/models.py:123 +#: InvenTree/magic_login.py:37 company/models.py:134 #: company/templates/company/company_base.html:132 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:667 msgid "Email" msgstr "" -#: InvenTree/models.py:81 +#: InvenTree/models.py:83 msgid "Metadata must be a python dict object" msgstr "" -#: InvenTree/models.py:85 +#: InvenTree/models.py:89 msgid "Plugin Metadata" msgstr "" -#: InvenTree/models.py:86 +#: InvenTree/models.py:90 msgid "JSON metadata field, for use by external plugins" msgstr "" -#: InvenTree/models.py:312 +#: InvenTree/models.py:320 msgid "Improperly formatted pattern" msgstr "" -#: InvenTree/models.py:319 +#: InvenTree/models.py:327 msgid "Unknown format key specified" msgstr "" -#: InvenTree/models.py:325 +#: InvenTree/models.py:333 msgid "Missing required format key" msgstr "" -#: InvenTree/models.py:336 +#: InvenTree/models.py:344 msgid "Reference field cannot be empty" msgstr "" -#: InvenTree/models.py:343 +#: InvenTree/models.py:352 msgid "Reference must match required pattern" msgstr "" -#: InvenTree/models.py:373 +#: InvenTree/models.py:384 msgid "Reference number is too large" msgstr "" -#: InvenTree/models.py:455 +#: InvenTree/models.py:466 msgid "Missing file" msgstr "" -#: InvenTree/models.py:456 +#: InvenTree/models.py:467 msgid "Missing external link" msgstr "" -#: InvenTree/models.py:475 stock/models.py:2325 +#: InvenTree/models.py:488 stock/models.py:2340 #: templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:326 msgid "Attachment" msgstr "" -#: InvenTree/models.py:476 +#: InvenTree/models.py:489 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:482 common/models.py:2884 company/models.py:129 -#: company/models.py:387 company/models.py:441 company/models.py:720 -#: order/models.py:235 order/models.py:1142 order/models.py:1500 -#: part/admin.py:38 part/models.py:837 +#: InvenTree/models.py:497 common/models.py:2839 company/models.py:147 +#: company/models.py:452 company/models.py:507 company/models.py:809 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 +#: part/admin.py:55 part/models.py:902 #: part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 -#: stock/admin.py:138 templates/js/translated/company.js:1309 +#: stock/admin.py:223 templates/js/translated/company.js:1309 #: templates/js/translated/company.js:1663 templates/js/translated/order.js:351 #: templates/js/translated/part.js:2454 #: templates/js/translated/purchase_order.js:2034 @@ -282,72 +282,71 @@ msgstr "" msgid "Link" msgstr "" -#: InvenTree/models.py:483 build/models.py:307 part/models.py:838 -#: stock/models.py:769 +#: InvenTree/models.py:498 build/models.py:307 part/models.py:903 +#: stock/models.py:811 msgid "Link to external URL" msgstr "" -#: InvenTree/models.py:486 templates/js/translated/attachment.js:120 +#: InvenTree/models.py:504 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:341 msgid "Comment" msgstr "" -#: InvenTree/models.py:486 +#: InvenTree/models.py:505 msgid "File comment" msgstr "" -#: InvenTree/models.py:492 InvenTree/models.py:493 common/models.py:2344 -#: common/models.py:2345 common/models.py:2557 common/models.py:2558 -#: common/models.py:2814 common/models.py:2815 part/models.py:3011 -#: part/models.py:3096 part/models.py:3175 part/models.py:3195 -#: plugin/models.py:229 plugin/models.py:230 +#: InvenTree/models.py:513 InvenTree/models.py:514 common/models.py:2320 +#: common/models.py:2321 common/models.py:2545 common/models.py:2546 +#: common/models.py:2791 common/models.py:2792 part/models.py:3158 +#: part/models.py:3245 part/models.py:3338 part/models.py:3366 +#: plugin/models.py:234 plugin/models.py:235 #: report/templates/report/inventree_test_report_base.html:105 -#: templates/js/translated/stock.js:3007 users/models.py:102 +#: templates/js/translated/stock.js:3007 users/models.py:100 msgid "User" msgstr "" -#: InvenTree/models.py:496 +#: InvenTree/models.py:518 msgid "upload date" msgstr "" -#: InvenTree/models.py:517 +#: InvenTree/models.py:540 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:526 +#: InvenTree/models.py:551 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:536 +#: InvenTree/models.py:581 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:539 +#: InvenTree/models.py:584 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:546 +#: InvenTree/models.py:593 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:553 +#: InvenTree/models.py:600 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:728 +#: InvenTree/models.py:776 msgid "Duplicate names cannot exist under the same parent" msgstr "" -#: InvenTree/models.py:752 +#: InvenTree/models.py:793 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:786 InvenTree/models.py:787 common/models.py:2543 -#: common/models.py:2989 company/models.py:525 label/models.py:116 -#: part/models.py:783 part/models.py:3393 plugin/models.py:42 -#: report/models.py:170 stock/models.py:71 stock/models.py:72 -#: templates/InvenTree/settings/mixins/urls.html:13 +#: InvenTree/models.py:823 common/models.py:2532 common/models.py:2925 +#: company/models.py:606 label/models.py:115 part/models.py:838 +#: part/models.py:3575 plugin/models.py:40 report/models.py:172 +#: stock/models.py:78 templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 #: templates/InvenTree/settings/plugin.html:80 #: templates/InvenTree/settings/plugin_settings.html:22 @@ -363,19 +362,19 @@ msgstr "" msgid "Name" msgstr "" -#: InvenTree/models.py:793 build/models.py:180 -#: build/templates/build/detail.html:24 common/models.py:126 -#: company/models.py:447 company/models.py:726 +#: InvenTree/models.py:829 build/models.py:180 +#: build/templates/build/detail.html:24 common/models.py:133 +#: company/models.py:515 company/models.py:817 #: company/templates/company/company_base.html:71 #: company/templates/company/manufacturer_part.html:75 -#: company/templates/company/supplier_part.html:107 label/models.py:123 -#: order/models.py:227 order/models.py:1166 part/admin.py:191 part/admin.py:272 -#: part/models.py:805 part/models.py:3409 part/templates/part/category.html:82 +#: company/templates/company/supplier_part.html:107 label/models.py:122 +#: order/models.py:259 order/models.py:1291 part/admin.py:303 part/admin.py:413 +#: part/models.py:861 part/models.py:3590 part/templates/part/category.html:82 #: part/templates/part/part_base.html:170 -#: part/templates/part/part_scheduling.html:12 report/models.py:183 -#: report/models.py:611 report/models.py:654 +#: part/templates/part/part_scheduling.html:12 report/models.py:185 +#: report/models.py:615 report/models.py:660 #: report/templates/report/inventree_build_order_base.html:117 -#: stock/admin.py:42 stock/models.py:78 stock/templates/stock/location.html:125 +#: stock/admin.py:55 stock/models.py:84 stock/templates/stock/location.html:125 #: templates/InvenTree/settings/notifications.html:19 #: templates/InvenTree/settings/plugin_settings.html:27 #: templates/InvenTree/settings/settings_staff_js.html:170 @@ -400,63 +399,63 @@ msgstr "" msgid "Description" msgstr "" -#: InvenTree/models.py:794 stock/models.py:79 +#: InvenTree/models.py:830 stock/models.py:85 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:839 msgid "parent" msgstr "" -#: InvenTree/models.py:809 InvenTree/models.py:810 -#: templates/js/translated/part.js:2792 templates/js/translated/stock.js:2728 +#: InvenTree/models.py:845 templates/js/translated/part.js:2792 +#: templates/js/translated/stock.js:2728 msgid "Path" msgstr "" -#: InvenTree/models.py:921 +#: InvenTree/models.py:951 msgid "Markdown notes (optional)" msgstr "" -#: InvenTree/models.py:948 +#: InvenTree/models.py:980 msgid "Barcode Data" msgstr "" -#: InvenTree/models.py:949 +#: InvenTree/models.py:981 msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:954 +#: InvenTree/models.py:987 msgid "Barcode Hash" msgstr "" -#: InvenTree/models.py:955 +#: InvenTree/models.py:988 msgid "Unique hash of barcode data" msgstr "" -#: InvenTree/models.py:1011 +#: InvenTree/models.py:1041 msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:1052 +#: InvenTree/models.py:1084 msgid "Server Error" msgstr "" -#: InvenTree/models.py:1053 +#: InvenTree/models.py:1085 msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:61 part/models.py:3898 +#: InvenTree/serializers.py:60 part/models.py:4099 msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:90 company/models.py:151 -#: company/templates/company/company_base.html:106 part/models.py:2838 +#: InvenTree/serializers.py:97 company/models.py:180 +#: company/templates/company/company_base.html:106 part/models.py:2966 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" msgstr "" -#: InvenTree/serializers.py:93 +#: InvenTree/serializers.py:100 msgid "Select currency from available options" msgstr "" @@ -464,16 +463,16 @@ msgstr "" msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:437 +#: InvenTree/serializers.py:439 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:454 +#: InvenTree/serializers.py:456 #, python-brace-format msgid "Welcome to {current_site.name}" msgstr "" -#: InvenTree/serializers.py:455 +#: InvenTree/serializers.py:458 #, python-brace-format msgid "" "Your account has been created.\n" @@ -481,269 +480,269 @@ msgid "" "Please use the password reset function to get access (at https://{domain})." msgstr "" -#: InvenTree/serializers.py:519 +#: InvenTree/serializers.py:520 msgid "Filename" msgstr "" -#: InvenTree/serializers.py:556 +#: InvenTree/serializers.py:554 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:578 +#: InvenTree/serializers.py:574 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:579 +#: InvenTree/serializers.py:575 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:600 +#: InvenTree/serializers.py:592 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:606 +#: InvenTree/serializers.py:598 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:627 +#: InvenTree/serializers.py:619 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:630 +#: InvenTree/serializers.py:622 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:753 +#: InvenTree/serializers.py:735 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:756 +#: InvenTree/serializers.py:738 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:833 +#: InvenTree/serializers.py:805 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:842 +#: InvenTree/serializers.py:814 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:867 +#: InvenTree/serializers.py:837 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:868 +#: InvenTree/serializers.py:838 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:881 +#: InvenTree/serializers.py:854 msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:833 +#: InvenTree/settings.py:837 msgid "Bulgarian" msgstr "" -#: InvenTree/settings.py:834 +#: InvenTree/settings.py:838 msgid "Czech" msgstr "" -#: InvenTree/settings.py:835 +#: InvenTree/settings.py:839 msgid "Danish" msgstr "" -#: InvenTree/settings.py:836 +#: InvenTree/settings.py:840 msgid "German" msgstr "" -#: InvenTree/settings.py:837 +#: InvenTree/settings.py:841 msgid "Greek" msgstr "" -#: InvenTree/settings.py:838 +#: InvenTree/settings.py:842 msgid "English" msgstr "" -#: InvenTree/settings.py:839 +#: InvenTree/settings.py:843 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:840 +#: InvenTree/settings.py:844 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:841 +#: InvenTree/settings.py:845 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:842 +#: InvenTree/settings.py:846 msgid "Finnish" msgstr "" -#: InvenTree/settings.py:843 +#: InvenTree/settings.py:847 msgid "French" msgstr "" -#: InvenTree/settings.py:844 +#: InvenTree/settings.py:848 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:845 +#: InvenTree/settings.py:849 msgid "Hindi" msgstr "" -#: InvenTree/settings.py:846 +#: InvenTree/settings.py:850 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:847 +#: InvenTree/settings.py:851 msgid "Italian" msgstr "" -#: InvenTree/settings.py:848 +#: InvenTree/settings.py:852 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:849 +#: InvenTree/settings.py:853 msgid "Korean" msgstr "" -#: InvenTree/settings.py:850 +#: InvenTree/settings.py:854 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:851 +#: InvenTree/settings.py:855 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:852 +#: InvenTree/settings.py:856 msgid "Polish" msgstr "" -#: InvenTree/settings.py:853 +#: InvenTree/settings.py:857 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:854 +#: InvenTree/settings.py:858 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:855 +#: InvenTree/settings.py:859 msgid "Russian" msgstr "" -#: InvenTree/settings.py:856 +#: InvenTree/settings.py:860 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:857 +#: InvenTree/settings.py:861 msgid "Serbian" msgstr "" -#: InvenTree/settings.py:858 +#: InvenTree/settings.py:862 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:859 +#: InvenTree/settings.py:863 msgid "Thai" msgstr "" -#: InvenTree/settings.py:860 +#: InvenTree/settings.py:864 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:861 +#: InvenTree/settings.py:865 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:862 +#: InvenTree/settings.py:866 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/settings.py:863 +#: InvenTree/settings.py:867 msgid "Chinese (Traditional)" msgstr "" -#: InvenTree/status.py:68 part/serializers.py:1051 +#: InvenTree/status.py:66 part/serializers.py:1082 msgid "Background worker check failed" msgstr "" -#: InvenTree/status.py:72 +#: InvenTree/status.py:70 msgid "Email backend not configured" msgstr "" -#: InvenTree/status.py:75 +#: InvenTree/status.py:73 msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:40 -#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:167 -#: InvenTree/status_codes.py:188 generic/states/tests.py:16 +#: InvenTree/status_codes.py:12 InvenTree/status_codes.py:37 +#: InvenTree/status_codes.py:148 InvenTree/status_codes.py:164 +#: InvenTree/status_codes.py:182 generic/states/tests.py:17 #: templates/js/translated/table_filters.js:594 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:13 generic/states/tests.py:17 +#: InvenTree/status_codes.py:13 generic/states/tests.py:18 msgid "Placed" msgstr "" #: InvenTree/status_codes.py:14 InvenTree/status_codes.py:151 -#: InvenTree/status_codes.py:172 generic/states/tests.py:18 +#: InvenTree/status_codes.py:169 generic/states/tests.py:19 #: order/templates/order/order_base.html:158 #: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:43 -#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:15 InvenTree/status_codes.py:44 +#: InvenTree/status_codes.py:150 InvenTree/status_codes.py:170 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:44 -#: InvenTree/status_codes.py:71 +#: InvenTree/status_codes.py:16 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:67 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:45 +#: InvenTree/status_codes.py:17 InvenTree/status_codes.py:46 #: InvenTree/status_codes.py:73 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:41 InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:40 InvenTree/status_codes.py:167 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:42 order/models.py:1379 +#: InvenTree/status_codes.py:43 order/models.py:1528 #: templates/js/translated/sales_order.js:1523 #: templates/js/translated/sales_order.js:1644 #: templates/js/translated/sales_order.js:1957 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:66 +#: InvenTree/status_codes.py:62 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:67 +#: InvenTree/status_codes.py:63 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:68 +#: InvenTree/status_codes.py:64 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:69 +#: InvenTree/status_codes.py:65 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:70 +#: InvenTree/status_codes.py:66 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:72 +#: InvenTree/status_codes.py:70 msgid "Quarantined" msgstr "" @@ -855,23 +854,23 @@ msgstr "" msgid "Production" msgstr "" -#: InvenTree/status_codes.py:191 +#: InvenTree/status_codes.py:185 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:194 +#: InvenTree/status_codes.py:188 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:197 +#: InvenTree/status_codes.py:191 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:200 +#: InvenTree/status_codes.py:194 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:203 +#: InvenTree/status_codes.py:197 msgid "Reject" msgstr "" @@ -883,11 +882,11 @@ msgstr "" msgid "Not a valid currency code" msgstr "" -#: InvenTree/validators.py:120 InvenTree/validators.py:136 +#: InvenTree/validators.py:121 InvenTree/validators.py:137 msgid "Overage value must not be negative" msgstr "" -#: InvenTree/validators.py:138 +#: InvenTree/validators.py:139 msgid "Overage must not exceed 100%" msgstr "" @@ -895,27 +894,27 @@ msgstr "" msgid "Invalid value for overage" msgstr "" -#: InvenTree/views.py:403 templates/InvenTree/settings/user.html:23 +#: InvenTree/views.py:400 templates/InvenTree/settings/user.html:23 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:415 templates/InvenTree/settings/user.html:20 +#: InvenTree/views.py:412 templates/InvenTree/settings/user.html:20 msgid "Set Password" msgstr "" -#: InvenTree/views.py:437 +#: InvenTree/views.py:434 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:445 +#: InvenTree/views.py:442 msgid "Wrong password provided" msgstr "" -#: InvenTree/views.py:642 templates/navbar.html:160 +#: InvenTree/views.py:650 templates/navbar.html:160 msgid "System Information" msgstr "" -#: InvenTree/views.py:649 templates/navbar.html:171 +#: InvenTree/views.py:657 templates/navbar.html:171 msgid "About InvenTree" msgstr "" @@ -923,14 +922,14 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:281 part/models.py:3790 templates/js/translated/bom.js:997 +#: build/api.py:281 part/models.py:3977 templates/js/translated/bom.js:997 #: templates/js/translated/bom.js:1037 templates/js/translated/build.js:2511 #: templates/js/translated/table_filters.js:190 #: templates/js/translated/table_filters.js:579 msgid "Consumable" msgstr "" -#: build/api.py:282 part/models.py:3784 part/templates/part/upload_bom.html:58 +#: build/api.py:282 part/models.py:3971 part/templates/part/upload_bom.html:58 #: templates/js/translated/bom.js:1001 templates/js/translated/bom.js:1028 #: templates/js/translated/build.js:2520 #: templates/js/translated/table_filters.js:186 @@ -944,14 +943,14 @@ msgstr "" msgid "Tracked" msgstr "" -#: build/api.py:285 part/admin.py:64 templates/js/translated/build.js:1731 +#: build/api.py:285 part/admin.py:144 templates/js/translated/build.js:1731 #: templates/js/translated/build.js:2611 #: templates/js/translated/sales_order.js:1929 #: templates/js/translated/table_filters.js:567 msgid "Allocated" msgstr "" -#: build/api.py:293 company/models.py:767 +#: build/api.py:293 company/models.py:881 #: company/templates/company/supplier_part.html:114 #: templates/email/build_order_required_stock.html:19 #: templates/email/low_stock_notification.html:17 @@ -981,7 +980,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:196 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:186 users/models.py:196 +#: templates/js/translated/search.js:186 users/models.py:194 msgid "Build Orders" msgstr "" @@ -997,9 +996,9 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:172 order/models.py:364 order/models.py:792 -#: order/models.py:1136 order/models.py:1781 part/admin.py:274 -#: part/models.py:3799 part/templates/part/upload_bom.html:54 +#: build/models.py:172 order/models.py:422 order/models.py:873 +#: order/models.py:1251 order/models.py:1945 part/admin.py:416 +#: part/models.py:3992 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 @@ -1027,13 +1026,13 @@ msgid "BuildOrder to which this build is allocated" msgstr "" #: build/models.py:197 build/templates/build/build_base.html:97 -#: build/templates/build/detail.html:29 company/models.py:908 -#: order/models.py:1243 order/models.py:1358 order/models.py:1359 -#: part/models.py:366 part/models.py:2851 part/models.py:2977 -#: part/models.py:3114 part/models.py:3133 part/models.py:3152 -#: part/models.py:3173 part/models.py:3265 part/models.py:3539 -#: part/models.py:3661 part/models.py:3764 part/models.py:4087 -#: part/serializers.py:1010 part/serializers.py:1497 +#: build/templates/build/detail.html:29 company/models.py:1030 +#: order/models.py:1376 order/models.py:1508 order/models.py:1509 +#: part/models.py:388 part/models.py:2977 part/models.py:3121 +#: part/models.py:3265 part/models.py:3288 part/models.py:3309 +#: part/models.py:3331 part/models.py:3438 part/models.py:3723 +#: part/models.py:3850 part/models.py:3943 part/models.py:4304 +#: part/serializers.py:1028 part/serializers.py:1591 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/upload_bom.html:52 @@ -1044,7 +1043,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:24 #: report/templates/report/inventree_slr_report.html:102 #: report/templates/report/inventree_so_report_base.html:27 -#: stock/serializers.py:206 stock/serializers.py:614 +#: stock/serializers.py:200 stock/serializers.py:606 #: templates/InvenTree/search.html:82 #: templates/email/build_order_completed.html:17 #: templates/email/build_order_required_stock.html:17 @@ -1131,8 +1130,8 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:262 build/serializers.py:275 order/serializers.py:516 -#: stock/models.py:773 stock/serializers.py:1282 +#: build/models.py:262 build/serializers.py:275 order/serializers.py:525 +#: stock/models.py:815 stock/serializers.py:1229 #: templates/js/translated/purchase_order.js:1125 msgid "Batch Code" msgstr "" @@ -1141,7 +1140,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:269 order/models.py:243 part/models.py:975 +#: build/models.py:269 order/models.py:286 part/models.py:1062 #: part/templates/part/part_base.html:310 #: templates/js/translated/return_order.js:339 #: templates/js/translated/sales_order.js:827 @@ -1156,7 +1155,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:277 order/models.py:414 order/models.py:1824 +#: build/models.py:277 order/models.py:480 order/models.py:1990 #: templates/js/translated/build.js:2235 msgid "Completion Date" msgstr "" @@ -1174,10 +1173,10 @@ msgid "User who issued this build order" msgstr "" #: build/models.py:300 build/templates/build/build_base.html:204 -#: build/templates/build/detail.html:122 common/models.py:134 -#: order/models.py:257 order/templates/order/order_base.html:217 +#: build/templates/build/detail.html:122 common/models.py:142 +#: order/models.py:304 order/templates/order/order_base.html:217 #: order/templates/order/return_order_base.html:188 -#: order/templates/order/sales_order_base.html:228 part/models.py:982 +#: order/templates/order/sales_order_base.html:228 part/models.py:1079 #: part/templates/part/part_base.html:390 #: report/templates/report/inventree_build_order_base.html:158 #: templates/InvenTree/settings/settings_staff_js.html:150 @@ -1198,7 +1197,7 @@ msgstr "" #: order/templates/order/order_base.html:167 #: order/templates/order/return_order_base.html:145 #: order/templates/order/sales_order_base.html:180 -#: part/templates/part/part_base.html:383 stock/models.py:767 +#: part/templates/part/part_base.html:383 stock/models.py:811 #: stock/templates/stock/item_base.html:200 #: templates/js/translated/company.js:1009 msgid "External Link" @@ -1212,8 +1211,8 @@ msgstr "" msgid "Priority of this build order" msgstr "" -#: build/models.py:321 common/models.py:119 order/admin.py:17 -#: order/models.py:232 templates/InvenTree/settings/settings_staff_js.html:146 +#: build/models.py:321 common/models.py:126 order/admin.py:18 +#: order/models.py:268 templates/InvenTree/settings/settings_staff_js.html:146 #: templates/js/translated/build.js:2132 #: templates/js/translated/purchase_order.js:1704 #: templates/js/translated/return_order.js:318 @@ -1249,9 +1248,9 @@ msgid "Build output does not match Build Order" msgstr "" #: build/models.py:860 build/serializers.py:218 build/serializers.py:257 -#: build/serializers.py:815 order/models.py:445 order/serializers.py:389 -#: order/serializers.py:511 part/serializers.py:1322 part/serializers.py:1661 -#: stock/models.py:629 stock/models.py:1426 stock/serializers.py:390 +#: build/serializers.py:815 order/models.py:518 order/serializers.py:393 +#: order/serializers.py:520 part/serializers.py:1385 part/serializers.py:1749 +#: stock/models.py:656 stock/models.py:1466 stock/serializers.py:394 msgid "Quantity must be greater than zero" msgstr "" @@ -1265,10 +1264,10 @@ msgstr "" #: build/models.py:1293 build/models.py:1551 build/serializers.py:205 #: build/serializers.py:242 build/templates/build/build_base.html:102 -#: build/templates/build/detail.html:34 common/models.py:2366 -#: order/models.py:1123 order/models.py:1703 order/serializers.py:1267 -#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:273 -#: part/forms.py:47 part/models.py:2990 part/models.py:3780 +#: build/templates/build/detail.html:34 common/models.py:2342 +#: order/models.py:1234 order/models.py:1868 order/serializers.py:1282 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:415 +#: part/forms.py:48 part/models.py:3135 part/models.py:3965 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1278,7 +1277,7 @@ msgstr "" #: report/templates/report/inventree_so_report_base.html:29 #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 -#: stock/admin.py:121 stock/serializers.py:381 +#: stock/admin.py:158 stock/serializers.py:385 #: stock/templates/stock/item_base.html:287 #: stock/templates/stock/item_base.html:295 #: stock/templates/stock/item_base.html:342 @@ -1323,11 +1322,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1393 order/models.py:1659 +#: build/models.py:1393 order/models.py:1819 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1399 order/models.py:1662 +#: build/models.py:1399 order/models.py:1822 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1339,9 +1338,9 @@ msgstr "" msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1095 -#: order/serializers.py:1116 stock/serializers.py:488 stock/serializers.py:989 -#: stock/serializers.py:1115 stock/templates/stock/item_base.html:10 +#: build/models.py:1538 build/serializers.py:795 order/serializers.py:1126 +#: order/serializers.py:1147 stock/serializers.py:488 stock/serializers.py:956 +#: stock/serializers.py:1068 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 #: stock/templates/stock/item_base.html:194 #: templates/js/translated/build.js:1732 @@ -1405,8 +1404,8 @@ msgstr "" msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:282 order/serializers.py:524 order/serializers.py:1271 -#: stock/serializers.py:399 templates/js/translated/purchase_order.js:1149 +#: build/serializers.py:282 order/serializers.py:533 order/serializers.py:1286 +#: stock/serializers.py:405 templates/js/translated/purchase_order.js:1149 #: templates/js/translated/stock.js:367 templates/js/translated/stock.js:565 msgid "Serial Numbers" msgstr "" @@ -1423,7 +1422,7 @@ msgstr "" msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:332 stock/api.py:874 +#: build/serializers.py:332 stock/api.py:939 msgid "The following serial numbers already exist or are invalid" msgstr "" @@ -1431,10 +1430,10 @@ msgstr "" msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:497 -#: order/serializers.py:616 order/serializers.py:1623 part/serializers.py:1022 -#: stock/serializers.py:410 stock/serializers.py:575 stock/serializers.py:669 -#: stock/serializers.py:1150 stock/serializers.py:1421 +#: build/serializers.py:421 build/serializers.py:493 order/serializers.py:509 +#: order/serializers.py:617 order/serializers.py:1622 part/serializers.py:1048 +#: stock/serializers.py:416 stock/serializers.py:571 stock/serializers.py:667 +#: stock/serializers.py:1100 stock/serializers.py:1348 #: stock/templates/stock/item_base.html:394 #: templates/js/translated/barcode.js:547 #: templates/js/translated/barcode.js:795 templates/js/translated/build.js:994 @@ -1472,9 +1471,9 @@ msgid "Location for completed build outputs" msgstr "" #: build/serializers.py:500 build/templates/build/build_base.html:151 -#: build/templates/build/detail.html:62 order/models.py:818 -#: order/models.py:1807 order/serializers.py:534 stock/admin.py:124 -#: stock/serializers.py:726 stock/serializers.py:1289 +#: build/templates/build/detail.html:62 order/models.py:897 +#: order/models.py:1969 order/serializers.py:541 stock/admin.py:163 +#: stock/serializers.py:718 stock/serializers.py:1236 #: stock/templates/stock/item_base.html:427 #: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2179 #: templates/js/translated/purchase_order.js:1304 @@ -1546,7 +1545,7 @@ msgstr "" msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:668 order/serializers.py:272 order/serializers.py:1163 +#: build/serializers.py:668 order/serializers.py:278 order/serializers.py:1189 msgid "Accept Incomplete" msgstr "" @@ -1582,11 +1581,11 @@ msgstr "" msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:801 stock/serializers.py:1002 +#: build/serializers.py:801 stock/serializers.py:969 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:849 order/serializers.py:1153 +#: build/serializers.py:849 order/serializers.py:1180 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" @@ -1599,7 +1598,7 @@ msgstr "" msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:886 order/serializers.py:1435 +#: build/serializers.py:886 order/serializers.py:1432 msgid "Allocation items must be provided" msgstr "" @@ -1764,8 +1763,8 @@ msgid "Stock has not been fully allocated to this Build Order" msgstr "" #: build/templates/build/build_base.html:160 -#: build/templates/build/detail.html:138 order/models.py:239 -#: order/models.py:1148 order/templates/order/order_base.html:186 +#: build/templates/build/detail.html:138 order/models.py:279 +#: order/models.py:1269 order/templates/order/order_base.html:186 #: order/templates/order/return_order_base.html:164 #: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 @@ -1802,8 +1801,8 @@ msgid "Completed Outputs" msgstr "" #: build/templates/build/build_base.html:190 -#: build/templates/build/detail.html:101 order/api.py:1409 order/models.py:1351 -#: order/models.py:1450 order/models.py:1598 +#: build/templates/build/detail.html:101 order/api.py:1408 order/models.py:1500 +#: order/models.py:1604 order/models.py:1756 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 @@ -1853,7 +1852,7 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1270 +#: build/templates/build/detail.html:49 order/models.py:1405 #: templates/js/translated/purchase_order.js:2183 msgid "Destination" msgstr "" @@ -1866,7 +1865,7 @@ msgstr "" msgid "Allocated Parts" msgstr "" -#: build/templates/build/detail.html:80 stock/admin.py:123 +#: build/templates/build/detail.html:80 stock/admin.py:161 #: stock/templates/stock/item_base.html:162 #: templates/js/translated/build.js:1367 #: templates/js/translated/model_renderers.js:233 @@ -2022,19 +2021,19 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:13 +#: common/forms.py:12 msgid "File" msgstr "" -#: common/forms.py:14 +#: common/forms.py:12 msgid "Select file to upload" msgstr "" -#: common/forms.py:28 +#: common/forms.py:25 msgid "{name.title()} File" msgstr "" -#: common/forms.py:29 +#: common/forms.py:26 #, python-brace-format msgid "Select {name} file to upload" msgstr "" @@ -2047,1041 +2046,1041 @@ msgstr "" msgid "Timestamp of last update" msgstr "" -#: common/models.py:120 +#: common/models.py:127 msgid "Unique project code" msgstr "" -#: common/models.py:127 +#: common/models.py:134 msgid "Project description" msgstr "" -#: common/models.py:135 +#: common/models.py:143 msgid "User or group responsible for this project" msgstr "" -#: common/models.py:658 +#: common/models.py:714 msgid "Settings key (must be unique - case insensitive)" msgstr "" -#: common/models.py:660 +#: common/models.py:718 msgid "Settings value" msgstr "" -#: common/models.py:701 +#: common/models.py:770 msgid "Chosen value is not a valid option" msgstr "" -#: common/models.py:718 +#: common/models.py:786 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:729 +#: common/models.py:794 msgid "Value must be an integer value" msgstr "" -#: common/models.py:768 +#: common/models.py:831 msgid "Key string must be unique" msgstr "" -#: common/models.py:973 +#: common/models.py:1063 msgid "No group" msgstr "" -#: common/models.py:998 +#: common/models.py:1088 msgid "An empty domain is not allowed." msgstr "" -#: common/models.py:1000 +#: common/models.py:1090 #, python-brace-format msgid "Invalid domain name: {domain}" msgstr "" -#: common/models.py:1012 +#: common/models.py:1102 msgid "No plugin" msgstr "" -#: common/models.py:1078 +#: common/models.py:1166 msgid "Restart required" msgstr "" -#: common/models.py:1079 +#: common/models.py:1168 msgid "A setting has been changed which requires a server restart" msgstr "" -#: common/models.py:1086 +#: common/models.py:1175 msgid "Pending migrations" msgstr "" -#: common/models.py:1087 +#: common/models.py:1176 msgid "Number of pending database migrations" msgstr "" -#: common/models.py:1093 +#: common/models.py:1181 msgid "Server Instance Name" msgstr "" -#: common/models.py:1095 +#: common/models.py:1183 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:1100 +#: common/models.py:1187 msgid "Use instance name" msgstr "" -#: common/models.py:1101 +#: common/models.py:1188 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:1107 +#: common/models.py:1193 msgid "Restrict showing `about`" msgstr "" -#: common/models.py:1108 +#: common/models.py:1194 msgid "Show the `about` modal only to superusers" msgstr "" -#: common/models.py:1114 company/models.py:102 company/models.py:103 +#: common/models.py:1199 company/models.py:109 company/models.py:110 msgid "Company name" msgstr "" -#: common/models.py:1115 +#: common/models.py:1200 msgid "Internal company name" msgstr "" -#: common/models.py:1120 +#: common/models.py:1204 msgid "Base URL" msgstr "" -#: common/models.py:1121 +#: common/models.py:1205 msgid "Base URL for server instance" msgstr "" -#: common/models.py:1128 +#: common/models.py:1211 msgid "Default Currency" msgstr "" -#: common/models.py:1129 +#: common/models.py:1212 msgid "Select base currency for pricing calculations" msgstr "" -#: common/models.py:1136 +#: common/models.py:1218 msgid "Currency Update Interval" msgstr "" -#: common/models.py:1137 +#: common/models.py:1220 msgid "How often to update exchange rates (set to zero to disable)" msgstr "" -#: common/models.py:1139 common/models.py:1210 common/models.py:1228 -#: common/models.py:1235 common/models.py:1246 common/models.py:1257 -#: common/models.py:1488 common/models.py:1512 common/models.py:1631 -#: common/models.py:1887 +#: common/models.py:1223 common/models.py:1279 common/models.py:1292 +#: common/models.py:1300 common/models.py:1309 common/models.py:1318 +#: common/models.py:1520 common/models.py:1542 common/models.py:1651 +#: common/models.py:1900 msgid "days" msgstr "" -#: common/models.py:1147 +#: common/models.py:1227 msgid "Currency Update Plugin" msgstr "" -#: common/models.py:1148 +#: common/models.py:1228 msgid "Currency update plugin to use" msgstr "" -#: common/models.py:1154 +#: common/models.py:1233 msgid "Download from URL" msgstr "" -#: common/models.py:1155 +#: common/models.py:1235 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:1161 +#: common/models.py:1241 msgid "Download Size Limit" msgstr "" -#: common/models.py:1162 +#: common/models.py:1242 msgid "Maximum allowable download size for remote image" msgstr "" -#: common/models.py:1173 +#: common/models.py:1248 msgid "User-agent used to download from URL" msgstr "" -#: common/models.py:1174 +#: common/models.py:1250 msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" msgstr "" -#: common/models.py:1179 +#: common/models.py:1255 msgid "Strict URL Validation" msgstr "" -#: common/models.py:1180 +#: common/models.py:1256 msgid "Require schema specification when validating URLs" msgstr "" -#: common/models.py:1186 +#: common/models.py:1261 msgid "Require confirm" msgstr "" -#: common/models.py:1187 +#: common/models.py:1262 msgid "Require explicit user confirmation for certain action." msgstr "" -#: common/models.py:1193 +#: common/models.py:1267 msgid "Tree Depth" msgstr "" -#: common/models.py:1194 +#: common/models.py:1269 msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." msgstr "" -#: common/models.py:1203 +#: common/models.py:1275 msgid "Update Check Interval" msgstr "" -#: common/models.py:1204 +#: common/models.py:1276 msgid "How often to check for updates (set to zero to disable)" msgstr "" -#: common/models.py:1214 +#: common/models.py:1282 msgid "Automatic Backup" msgstr "" -#: common/models.py:1215 +#: common/models.py:1283 msgid "Enable automatic backup of database and media files" msgstr "" -#: common/models.py:1221 +#: common/models.py:1288 msgid "Auto Backup Interval" msgstr "" -#: common/models.py:1222 +#: common/models.py:1289 msgid "Specify number of days between automated backup events" msgstr "" -#: common/models.py:1232 +#: common/models.py:1295 msgid "Task Deletion Interval" msgstr "" -#: common/models.py:1233 +#: common/models.py:1297 msgid "Background task results will be deleted after specified number of days" msgstr "" -#: common/models.py:1243 +#: common/models.py:1304 msgid "Error Log Deletion Interval" msgstr "" -#: common/models.py:1244 +#: common/models.py:1306 msgid "Error logs will be deleted after specified number of days" msgstr "" -#: common/models.py:1254 +#: common/models.py:1313 msgid "Notification Deletion Interval" msgstr "" -#: common/models.py:1255 +#: common/models.py:1315 msgid "User notifications will be deleted after specified number of days" msgstr "" -#: common/models.py:1265 templates/InvenTree/settings/sidebar.html:31 +#: common/models.py:1322 templates/InvenTree/settings/sidebar.html:31 msgid "Barcode Support" msgstr "" -#: common/models.py:1266 +#: common/models.py:1323 msgid "Enable barcode scanner support in the web interface" msgstr "" -#: common/models.py:1272 +#: common/models.py:1328 msgid "Barcode Input Delay" msgstr "" -#: common/models.py:1273 +#: common/models.py:1329 msgid "Barcode input processing delay time" msgstr "" -#: common/models.py:1283 +#: common/models.py:1335 msgid "Barcode Webcam Support" msgstr "" -#: common/models.py:1284 +#: common/models.py:1336 msgid "Allow barcode scanning via webcam in browser" msgstr "" -#: common/models.py:1290 +#: common/models.py:1341 msgid "Part Revisions" msgstr "" -#: common/models.py:1291 +#: common/models.py:1342 msgid "Enable revision field for Part" msgstr "" -#: common/models.py:1297 +#: common/models.py:1347 msgid "IPN Regex" msgstr "" -#: common/models.py:1298 +#: common/models.py:1348 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:1302 +#: common/models.py:1351 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:1303 +#: common/models.py:1352 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:1309 +#: common/models.py:1357 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:1310 +#: common/models.py:1358 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:1316 +#: common/models.py:1363 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:1317 +#: common/models.py:1364 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:1323 +#: common/models.py:1369 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:1324 +#: common/models.py:1370 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:1330 +#: common/models.py:1375 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:1331 +#: common/models.py:1376 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:1337 +#: common/models.py:1381 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:1338 +#: common/models.py:1382 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1344 part/admin.py:55 part/models.py:3544 -#: report/models.py:176 templates/js/translated/table_filters.js:139 +#: common/models.py:1387 part/admin.py:108 part/models.py:3731 +#: report/models.py:178 templates/js/translated/table_filters.js:139 #: templates/js/translated/table_filters.js:763 msgid "Template" msgstr "" -#: common/models.py:1345 +#: common/models.py:1388 msgid "Parts are templates by default" msgstr "" -#: common/models.py:1351 part/admin.py:51 part/admin.py:279 part/models.py:933 +#: common/models.py:1393 part/admin.py:91 part/admin.py:430 part/models.py:999 #: templates/js/translated/bom.js:1633 #: templates/js/translated/table_filters.js:330 #: templates/js/translated/table_filters.js:717 msgid "Assembly" msgstr "" -#: common/models.py:1352 +#: common/models.py:1394 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:1358 part/admin.py:52 part/models.py:939 +#: common/models.py:1399 part/admin.py:95 part/models.py:1005 #: templates/js/translated/table_filters.js:725 msgid "Component" msgstr "" -#: common/models.py:1359 +#: common/models.py:1400 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:1365 part/admin.py:53 part/models.py:950 +#: common/models.py:1405 part/admin.py:100 part/models.py:1017 msgid "Purchaseable" msgstr "" -#: common/models.py:1366 +#: common/models.py:1406 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:1372 part/admin.py:54 part/models.py:955 +#: common/models.py:1411 part/admin.py:104 part/models.py:1023 #: templates/js/translated/table_filters.js:751 msgid "Salable" msgstr "" -#: common/models.py:1373 +#: common/models.py:1412 msgid "Parts are salable by default" msgstr "" -#: common/models.py:1379 part/admin.py:56 part/models.py:945 +#: common/models.py:1417 part/admin.py:113 part/models.py:1011 #: templates/js/translated/table_filters.js:147 #: templates/js/translated/table_filters.js:223 #: templates/js/translated/table_filters.js:767 msgid "Trackable" msgstr "" -#: common/models.py:1380 +#: common/models.py:1418 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:1386 part/admin.py:57 part/models.py:965 +#: common/models.py:1423 part/admin.py:117 part/models.py:1033 #: part/templates/part/part_base.html:154 #: templates/js/translated/table_filters.js:143 #: templates/js/translated/table_filters.js:771 msgid "Virtual" msgstr "" -#: common/models.py:1387 +#: common/models.py:1424 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:1393 +#: common/models.py:1429 msgid "Show Import in Views" msgstr "" -#: common/models.py:1394 +#: common/models.py:1430 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:1400 +#: common/models.py:1435 msgid "Show related parts" msgstr "" -#: common/models.py:1401 +#: common/models.py:1436 msgid "Display related parts for a part" msgstr "" -#: common/models.py:1407 +#: common/models.py:1441 msgid "Initial Stock Data" msgstr "" -#: common/models.py:1408 +#: common/models.py:1442 msgid "Allow creation of initial stock when adding a new part" msgstr "" -#: common/models.py:1414 templates/js/translated/part.js:107 +#: common/models.py:1447 templates/js/translated/part.js:107 msgid "Initial Supplier Data" msgstr "" -#: common/models.py:1415 +#: common/models.py:1449 msgid "Allow creation of initial supplier data when adding a new part" msgstr "" -#: common/models.py:1421 +#: common/models.py:1455 msgid "Part Name Display Format" msgstr "" -#: common/models.py:1422 +#: common/models.py:1456 msgid "Format to display the part name" msgstr "" -#: common/models.py:1429 +#: common/models.py:1462 msgid "Part Category Default Icon" msgstr "" -#: common/models.py:1430 +#: common/models.py:1463 msgid "Part category default icon (empty means no icon)" msgstr "" -#: common/models.py:1435 +#: common/models.py:1467 msgid "Enforce Parameter Units" msgstr "" -#: common/models.py:1436 +#: common/models.py:1469 msgid "If units are provided, parameter values must match the specified units" msgstr "" -#: common/models.py:1442 +#: common/models.py:1475 msgid "Minimum Pricing Decimal Places" msgstr "" -#: common/models.py:1443 +#: common/models.py:1477 msgid "Minimum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1453 +#: common/models.py:1483 msgid "Maximum Pricing Decimal Places" msgstr "" -#: common/models.py:1454 +#: common/models.py:1485 msgid "Maximum number of decimal places to display when rendering pricing data" msgstr "" -#: common/models.py:1464 +#: common/models.py:1491 msgid "Use Supplier Pricing" msgstr "" -#: common/models.py:1465 +#: common/models.py:1493 msgid "Include supplier price breaks in overall pricing calculations" msgstr "" -#: common/models.py:1471 +#: common/models.py:1499 msgid "Purchase History Override" msgstr "" -#: common/models.py:1472 +#: common/models.py:1501 msgid "Historical purchase order pricing overrides supplier price breaks" msgstr "" -#: common/models.py:1478 +#: common/models.py:1507 msgid "Use Stock Item Pricing" msgstr "" -#: common/models.py:1479 +#: common/models.py:1509 msgid "Use pricing from manually entered stock data for pricing calculations" msgstr "" -#: common/models.py:1485 +#: common/models.py:1515 msgid "Stock Item Pricing Age" msgstr "" -#: common/models.py:1486 +#: common/models.py:1517 msgid "Exclude stock items older than this number of days from pricing calculations" msgstr "" -#: common/models.py:1496 +#: common/models.py:1524 msgid "Use Variant Pricing" msgstr "" -#: common/models.py:1497 +#: common/models.py:1525 msgid "Include variant pricing in overall pricing calculations" msgstr "" -#: common/models.py:1503 +#: common/models.py:1530 msgid "Active Variants Only" msgstr "" -#: common/models.py:1504 +#: common/models.py:1532 msgid "Only use active variant parts for calculating variant pricing" msgstr "" -#: common/models.py:1510 +#: common/models.py:1538 msgid "Pricing Rebuild Interval" msgstr "" -#: common/models.py:1511 +#: common/models.py:1540 msgid "Number of days before part pricing is automatically updated" msgstr "" -#: common/models.py:1521 +#: common/models.py:1547 msgid "Internal Prices" msgstr "" -#: common/models.py:1522 +#: common/models.py:1548 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:1528 +#: common/models.py:1553 msgid "Internal Price Override" msgstr "" -#: common/models.py:1529 +#: common/models.py:1555 msgid "If available, internal prices override price range calculations" msgstr "" -#: common/models.py:1535 +#: common/models.py:1561 msgid "Enable label printing" msgstr "" -#: common/models.py:1536 +#: common/models.py:1562 msgid "Enable label printing from the web interface" msgstr "" -#: common/models.py:1542 +#: common/models.py:1567 msgid "Label Image DPI" msgstr "" -#: common/models.py:1543 +#: common/models.py:1569 msgid "DPI resolution when generating image files to supply to label printing plugins" msgstr "" -#: common/models.py:1552 +#: common/models.py:1575 msgid "Enable Reports" msgstr "" -#: common/models.py:1553 +#: common/models.py:1576 msgid "Enable generation of reports" msgstr "" -#: common/models.py:1559 templates/stats.html:25 +#: common/models.py:1581 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:1560 +#: common/models.py:1582 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:1566 plugin/builtin/labels/label_sheet.py:28 -#: report/models.py:197 +#: common/models.py:1587 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:199 msgid "Page Size" msgstr "" -#: common/models.py:1567 +#: common/models.py:1588 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:1573 +#: common/models.py:1593 msgid "Enable Test Reports" msgstr "" -#: common/models.py:1574 +#: common/models.py:1594 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:1580 +#: common/models.py:1599 msgid "Attach Test Reports" msgstr "" -#: common/models.py:1581 +#: common/models.py:1601 msgid "When printing a Test Report, attach a copy of the Test Report to the associated Stock Item" msgstr "" -#: common/models.py:1587 +#: common/models.py:1607 msgid "Globally Unique Serials" msgstr "" -#: common/models.py:1588 +#: common/models.py:1608 msgid "Serial numbers for stock items must be globally unique" msgstr "" -#: common/models.py:1594 +#: common/models.py:1613 msgid "Autofill Serial Numbers" msgstr "" -#: common/models.py:1595 +#: common/models.py:1614 msgid "Autofill serial numbers in forms" msgstr "" -#: common/models.py:1601 +#: common/models.py:1619 msgid "Delete Depleted Stock" msgstr "" -#: common/models.py:1602 +#: common/models.py:1621 msgid "Determines default behaviour when a stock item is depleted" msgstr "" -#: common/models.py:1608 +#: common/models.py:1627 msgid "Batch Code Template" msgstr "" -#: common/models.py:1609 +#: common/models.py:1629 msgid "Template for generating default batch codes for stock items" msgstr "" -#: common/models.py:1614 +#: common/models.py:1634 msgid "Stock Expiry" msgstr "" -#: common/models.py:1615 +#: common/models.py:1635 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:1621 +#: common/models.py:1640 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:1622 +#: common/models.py:1641 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:1628 +#: common/models.py:1646 msgid "Stock Stale Time" msgstr "" -#: common/models.py:1629 +#: common/models.py:1648 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:1636 +#: common/models.py:1655 msgid "Build Expired Stock" msgstr "" -#: common/models.py:1637 +#: common/models.py:1656 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:1643 +#: common/models.py:1661 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:1644 +#: common/models.py:1662 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:1650 +#: common/models.py:1667 msgid "Stock Location Default Icon" msgstr "" -#: common/models.py:1651 +#: common/models.py:1668 msgid "Stock location default icon (empty means no icon)" msgstr "" -#: common/models.py:1656 +#: common/models.py:1672 msgid "Show Installed Stock Items" msgstr "" -#: common/models.py:1657 +#: common/models.py:1673 msgid "Display installed stock items in stock tables" msgstr "" -#: common/models.py:1663 +#: common/models.py:1678 msgid "Build Order Reference Pattern" msgstr "" -#: common/models.py:1664 +#: common/models.py:1680 msgid "Required pattern for generating Build Order reference field" msgstr "" -#: common/models.py:1670 +#: common/models.py:1686 msgid "Enable Return Orders" msgstr "" -#: common/models.py:1671 +#: common/models.py:1687 msgid "Enable return order functionality in the user interface" msgstr "" -#: common/models.py:1677 +#: common/models.py:1692 msgid "Return Order Reference Pattern" msgstr "" -#: common/models.py:1678 +#: common/models.py:1694 msgid "Required pattern for generating Return Order reference field" msgstr "" -#: common/models.py:1684 +#: common/models.py:1700 msgid "Edit Completed Return Orders" msgstr "" -#: common/models.py:1685 +#: common/models.py:1702 msgid "Allow editing of return orders after they have been completed" msgstr "" -#: common/models.py:1691 +#: common/models.py:1708 msgid "Sales Order Reference Pattern" msgstr "" -#: common/models.py:1692 +#: common/models.py:1710 msgid "Required pattern for generating Sales Order reference field" msgstr "" -#: common/models.py:1698 +#: common/models.py:1716 msgid "Sales Order Default Shipment" msgstr "" -#: common/models.py:1699 +#: common/models.py:1717 msgid "Enable creation of default shipment with sales orders" msgstr "" -#: common/models.py:1705 +#: common/models.py:1722 msgid "Edit Completed Sales Orders" msgstr "" -#: common/models.py:1706 +#: common/models.py:1724 msgid "Allow editing of sales orders after they have been shipped or completed" msgstr "" -#: common/models.py:1712 +#: common/models.py:1730 msgid "Purchase Order Reference Pattern" msgstr "" -#: common/models.py:1713 +#: common/models.py:1732 msgid "Required pattern for generating Purchase Order reference field" msgstr "" -#: common/models.py:1719 +#: common/models.py:1738 msgid "Edit Completed Purchase Orders" msgstr "" -#: common/models.py:1720 +#: common/models.py:1740 msgid "Allow editing of purchase orders after they have been shipped or completed" msgstr "" -#: common/models.py:1727 +#: common/models.py:1747 msgid "Enable password forgot" msgstr "" -#: common/models.py:1728 +#: common/models.py:1748 msgid "Enable password forgot function on the login pages" msgstr "" -#: common/models.py:1734 +#: common/models.py:1753 msgid "Enable registration" msgstr "" -#: common/models.py:1735 +#: common/models.py:1754 msgid "Enable self-registration for users on the login pages" msgstr "" -#: common/models.py:1741 +#: common/models.py:1759 msgid "Enable SSO" msgstr "" -#: common/models.py:1742 +#: common/models.py:1760 msgid "Enable SSO on the login pages" msgstr "" -#: common/models.py:1748 +#: common/models.py:1765 msgid "Enable SSO registration" msgstr "" -#: common/models.py:1749 +#: common/models.py:1767 msgid "Enable self-registration via SSO for users on the login pages" msgstr "" -#: common/models.py:1755 +#: common/models.py:1773 msgid "Email required" msgstr "" -#: common/models.py:1756 +#: common/models.py:1774 msgid "Require user to supply mail on signup" msgstr "" -#: common/models.py:1762 +#: common/models.py:1779 msgid "Auto-fill SSO users" msgstr "" -#: common/models.py:1763 +#: common/models.py:1781 msgid "Automatically fill out user-details from SSO account-data" msgstr "" -#: common/models.py:1769 +#: common/models.py:1787 msgid "Mail twice" msgstr "" -#: common/models.py:1770 +#: common/models.py:1788 msgid "On signup ask users twice for their mail" msgstr "" -#: common/models.py:1776 +#: common/models.py:1793 msgid "Password twice" msgstr "" -#: common/models.py:1777 +#: common/models.py:1794 msgid "On signup ask users twice for their password" msgstr "" -#: common/models.py:1783 +#: common/models.py:1799 msgid "Allowed domains" msgstr "" -#: common/models.py:1784 +#: common/models.py:1801 msgid "Restrict signup to certain domains (comma-separated, starting with @)" msgstr "" -#: common/models.py:1790 +#: common/models.py:1807 msgid "Group on signup" msgstr "" -#: common/models.py:1791 +#: common/models.py:1808 msgid "Group to which new users are assigned on registration" msgstr "" -#: common/models.py:1797 +#: common/models.py:1813 msgid "Enforce MFA" msgstr "" -#: common/models.py:1798 +#: common/models.py:1814 msgid "Users must use multifactor security." msgstr "" -#: common/models.py:1804 +#: common/models.py:1819 msgid "Check plugins on startup" msgstr "" -#: common/models.py:1805 +#: common/models.py:1821 msgid "Check that all plugins are installed on startup - enable in container environments" msgstr "" -#: common/models.py:1813 +#: common/models.py:1830 msgid "Enable URL integration" msgstr "" -#: common/models.py:1814 +#: common/models.py:1831 msgid "Enable plugins to add URL routes" msgstr "" -#: common/models.py:1821 +#: common/models.py:1837 msgid "Enable navigation integration" msgstr "" -#: common/models.py:1822 +#: common/models.py:1838 msgid "Enable plugins to integrate into navigation" msgstr "" -#: common/models.py:1829 +#: common/models.py:1844 msgid "Enable app integration" msgstr "" -#: common/models.py:1830 +#: common/models.py:1845 msgid "Enable plugins to add apps" msgstr "" -#: common/models.py:1837 +#: common/models.py:1851 msgid "Enable schedule integration" msgstr "" -#: common/models.py:1838 +#: common/models.py:1852 msgid "Enable plugins to run scheduled tasks" msgstr "" -#: common/models.py:1845 +#: common/models.py:1858 msgid "Enable event integration" msgstr "" -#: common/models.py:1846 +#: common/models.py:1859 msgid "Enable plugins to respond to internal events" msgstr "" -#: common/models.py:1853 +#: common/models.py:1865 msgid "Enable project codes" msgstr "" -#: common/models.py:1854 +#: common/models.py:1866 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:1860 +#: common/models.py:1871 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:1861 +#: common/models.py:1873 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:1867 +#: common/models.py:1879 msgid "Exclude External Locations" msgstr "" -#: common/models.py:1868 +#: common/models.py:1881 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:1874 +#: common/models.py:1887 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:1875 +#: common/models.py:1889 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:1884 +#: common/models.py:1895 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:1885 +#: common/models.py:1897 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1895 +#: common/models.py:1904 msgid "Display Users full names" msgstr "" -#: common/models.py:1896 +#: common/models.py:1905 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:1908 common/models.py:2337 +#: common/models.py:1917 common/models.py:2312 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:1948 +#: common/models.py:1958 msgid "Hide inactive parts" msgstr "" -#: common/models.py:1949 +#: common/models.py:1960 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:1955 +#: common/models.py:1966 msgid "Show subscribed parts" msgstr "" -#: common/models.py:1956 +#: common/models.py:1967 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:1962 +#: common/models.py:1972 msgid "Show subscribed categories" msgstr "" -#: common/models.py:1963 +#: common/models.py:1973 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:1969 +#: common/models.py:1978 msgid "Show latest parts" msgstr "" -#: common/models.py:1970 +#: common/models.py:1979 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:1976 +#: common/models.py:1984 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:1977 +#: common/models.py:1985 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:1983 +#: common/models.py:1990 msgid "Show recent stock changes" msgstr "" -#: common/models.py:1984 +#: common/models.py:1991 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:1990 +#: common/models.py:1996 msgid "Show low stock" msgstr "" -#: common/models.py:1991 +#: common/models.py:1997 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:1997 +#: common/models.py:2002 msgid "Show depleted stock" msgstr "" -#: common/models.py:1998 +#: common/models.py:2003 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2004 +#: common/models.py:2008 msgid "Show needed stock" msgstr "" -#: common/models.py:2005 +#: common/models.py:2009 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2011 +#: common/models.py:2014 msgid "Show expired stock" msgstr "" -#: common/models.py:2012 +#: common/models.py:2015 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2018 +#: common/models.py:2020 msgid "Show stale stock" msgstr "" -#: common/models.py:2019 +#: common/models.py:2021 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2025 +#: common/models.py:2026 msgid "Show pending builds" msgstr "" -#: common/models.py:2026 +#: common/models.py:2027 msgid "Show pending builds on the homepage" msgstr "" @@ -3093,450 +3092,450 @@ msgstr "" msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2039 +#: common/models.py:2038 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2040 +#: common/models.py:2039 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2046 +#: common/models.py:2044 msgid "Show overdue POs" msgstr "" -#: common/models.py:2047 +#: common/models.py:2045 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2053 +#: common/models.py:2050 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2054 +#: common/models.py:2051 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2060 +#: common/models.py:2056 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2061 +#: common/models.py:2057 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2067 +#: common/models.py:2062 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2068 +#: common/models.py:2063 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2074 +#: common/models.py:2068 msgid "Show News" msgstr "" -#: common/models.py:2075 +#: common/models.py:2069 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2081 +#: common/models.py:2074 msgid "Inline label display" msgstr "" -#: common/models.py:2082 +#: common/models.py:2076 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2088 +#: common/models.py:2082 msgid "Default label printer" msgstr "" -#: common/models.py:2089 +#: common/models.py:2084 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2095 +#: common/models.py:2090 msgid "Inline report display" msgstr "" -#: common/models.py:2096 +#: common/models.py:2092 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2102 +#: common/models.py:2098 msgid "Search Parts" msgstr "" -#: common/models.py:2103 +#: common/models.py:2099 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2109 +#: common/models.py:2104 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2110 +#: common/models.py:2105 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2116 +#: common/models.py:2110 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2117 +#: common/models.py:2111 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2123 +#: common/models.py:2116 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2124 +#: common/models.py:2117 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2130 +#: common/models.py:2122 msgid "Search Categories" msgstr "" -#: common/models.py:2131 +#: common/models.py:2123 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2137 +#: common/models.py:2128 msgid "Search Stock" msgstr "" -#: common/models.py:2138 +#: common/models.py:2129 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2144 +#: common/models.py:2134 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2145 +#: common/models.py:2136 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2151 +#: common/models.py:2142 msgid "Search Locations" msgstr "" -#: common/models.py:2152 +#: common/models.py:2143 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2158 +#: common/models.py:2148 msgid "Search Companies" msgstr "" -#: common/models.py:2159 +#: common/models.py:2149 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2165 +#: common/models.py:2154 msgid "Search Build Orders" msgstr "" -#: common/models.py:2166 +#: common/models.py:2155 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2172 +#: common/models.py:2160 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2173 +#: common/models.py:2161 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2179 +#: common/models.py:2166 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2180 +#: common/models.py:2168 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2186 +#: common/models.py:2174 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2187 +#: common/models.py:2175 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2193 +#: common/models.py:2180 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2194 +#: common/models.py:2182 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2200 +#: common/models.py:2188 msgid "Search Return Orders" msgstr "" -#: common/models.py:2201 +#: common/models.py:2189 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2207 +#: common/models.py:2194 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2208 +#: common/models.py:2196 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2214 +#: common/models.py:2202 msgid "Search Preview Results" msgstr "" -#: common/models.py:2215 +#: common/models.py:2204 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2221 +#: common/models.py:2210 msgid "Regex Search" msgstr "" -#: common/models.py:2222 +#: common/models.py:2211 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2228 +#: common/models.py:2216 msgid "Whole Word Search" msgstr "" -#: common/models.py:2229 +#: common/models.py:2217 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2235 +#: common/models.py:2222 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2236 +#: common/models.py:2223 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2242 +#: common/models.py:2228 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2243 +#: common/models.py:2229 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2249 +#: common/models.py:2234 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2250 +#: common/models.py:2235 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2256 +#: common/models.py:2240 msgid "Date Format" msgstr "" -#: common/models.py:2257 +#: common/models.py:2241 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2271 part/templates/part/detail.html:41 +#: common/models.py:2254 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2272 +#: common/models.py:2255 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2278 part/templates/part/detail.html:62 +#: common/models.py:2260 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2279 +#: common/models.py:2262 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2285 +#: common/models.py:2268 msgid "Table String Length" msgstr "" -#: common/models.py:2286 +#: common/models.py:2270 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2295 +#: common/models.py:2276 msgid "Default part label template" msgstr "" -#: common/models.py:2296 +#: common/models.py:2277 msgid "The part label template to be automatically selected" msgstr "" -#: common/models.py:2304 +#: common/models.py:2282 msgid "Default stock item template" msgstr "" -#: common/models.py:2305 +#: common/models.py:2284 msgid "The stock item label template to be automatically selected" msgstr "" -#: common/models.py:2313 +#: common/models.py:2290 msgid "Default stock location label template" msgstr "" -#: common/models.py:2314 +#: common/models.py:2292 msgid "The stock location label template to be automatically selected" msgstr "" -#: common/models.py:2322 +#: common/models.py:2298 msgid "Receive error reports" msgstr "" -#: common/models.py:2323 +#: common/models.py:2299 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2367 +#: common/models.py:2343 msgid "Price break quantity" msgstr "" -#: common/models.py:2374 company/serializers.py:485 order/admin.py:41 -#: order/models.py:1181 order/models.py:2015 +#: common/models.py:2350 company/serializers.py:474 order/admin.py:42 +#: order/models.py:1308 order/models.py:2190 #: templates/js/translated/company.js:1813 templates/js/translated/part.js:1883 #: templates/js/translated/pricing.js:621 #: templates/js/translated/return_order.js:741 msgid "Price" msgstr "" -#: common/models.py:2375 +#: common/models.py:2351 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2534 common/models.py:2712 +#: common/models.py:2522 common/models.py:2707 msgid "Endpoint" msgstr "" -#: common/models.py:2535 +#: common/models.py:2523 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2544 +#: common/models.py:2533 msgid "Name for this webhook" msgstr "" -#: common/models.py:2549 part/admin.py:50 part/models.py:960 -#: plugin/models.py:48 templates/js/translated/table_filters.js:135 +#: common/models.py:2537 part/admin.py:88 part/models.py:1028 +#: plugin/models.py:45 templates/js/translated/table_filters.js:135 #: templates/js/translated/table_filters.js:219 #: templates/js/translated/table_filters.js:488 #: templates/js/translated/table_filters.js:516 -#: templates/js/translated/table_filters.js:712 users/models.py:171 +#: templates/js/translated/table_filters.js:712 users/models.py:169 msgid "Active" msgstr "" -#: common/models.py:2550 +#: common/models.py:2537 msgid "Is this webhook active" msgstr "" -#: common/models.py:2564 users/models.py:149 +#: common/models.py:2553 users/models.py:148 msgid "Token" msgstr "" -#: common/models.py:2565 +#: common/models.py:2554 msgid "Token for access" msgstr "" -#: common/models.py:2572 +#: common/models.py:2562 msgid "Secret" msgstr "" -#: common/models.py:2573 +#: common/models.py:2563 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2679 +#: common/models.py:2671 msgid "Message ID" msgstr "" -#: common/models.py:2680 +#: common/models.py:2672 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2688 +#: common/models.py:2680 msgid "Host" msgstr "" -#: common/models.py:2689 +#: common/models.py:2681 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2696 +#: common/models.py:2689 msgid "Header" msgstr "" -#: common/models.py:2697 +#: common/models.py:2690 msgid "Header of this message" msgstr "" -#: common/models.py:2703 +#: common/models.py:2697 msgid "Body" msgstr "" -#: common/models.py:2704 +#: common/models.py:2698 msgid "Body of this message" msgstr "" -#: common/models.py:2713 +#: common/models.py:2708 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2718 +#: common/models.py:2713 msgid "Worked on" msgstr "" -#: common/models.py:2719 +#: common/models.py:2714 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2873 +#: common/models.py:2835 msgid "Id" msgstr "" -#: common/models.py:2879 templates/js/translated/company.js:955 +#: common/models.py:2837 templates/js/translated/company.js:955 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:2889 templates/js/translated/news.js:60 +#: common/models.py:2841 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:2894 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:2843 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:2899 templates/js/translated/news.js:52 +#: common/models.py:2845 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:2904 +#: common/models.py:2848 msgid "Read" msgstr "" -#: common/models.py:2905 +#: common/models.py:2848 msgid "Was this news item read?" msgstr "" -#: common/models.py:2924 company/models.py:140 part/models.py:850 +#: common/models.py:2865 company/models.py:157 part/models.py:912 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report_base.html:35 @@ -3546,76 +3545,76 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:2925 +#: common/models.py:2865 msgid "Image file" msgstr "" -#: common/models.py:2968 +#: common/models.py:2907 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:2990 +#: common/models.py:2926 msgid "Unit name" msgstr "" -#: common/models.py:2996 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:2933 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:2997 +#: common/models.py:2934 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3003 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:2941 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3004 +#: common/models.py:2942 msgid "Unit definition" msgstr "" -#: common/notifications.py:290 +#: common/notifications.py:314 #, python-brace-format msgid "New {verbose_name}" msgstr "" -#: common/notifications.py:292 +#: common/notifications.py:316 msgid "A new order has been created and assigned to you" msgstr "" -#: common/notifications.py:298 +#: common/notifications.py:322 #, python-brace-format msgid "{verbose_name} canceled" msgstr "" -#: common/notifications.py:300 +#: common/notifications.py:324 msgid "A order that is assigned to you was canceled" msgstr "" -#: common/notifications.py:306 common/notifications.py:313 +#: common/notifications.py:330 common/notifications.py:337 msgid "Items Received" msgstr "" -#: common/notifications.py:308 +#: common/notifications.py:332 msgid "Items have been received against a purchase order" msgstr "" -#: common/notifications.py:315 +#: common/notifications.py:339 msgid "Items have been received against a return order" msgstr "" -#: common/notifications.py:427 +#: common/notifications.py:457 msgid "Error raised by plugin" msgstr "" -#: common/views.py:85 order/templates/order/order_wizard/po_upload.html:51 +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 #: order/templates/order/purchase_order_detail.html:24 order/views.py:118 #: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 #: templates/patterns/wizard/upload.html:37 msgid "Upload File" msgstr "" -#: common/views.py:86 order/templates/order/order_wizard/match_fields.html:52 +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 #: order/views.py:119 #: part/templates/part/import_wizard/ajax_match_fields.html:45 #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 @@ -3623,19 +3622,19 @@ msgstr "" msgid "Match Fields" msgstr "" -#: common/views.py:87 +#: common/views.py:84 msgid "Match Items" msgstr "" -#: common/views.py:420 +#: common/views.py:401 msgid "Fields matching failed" msgstr "" -#: common/views.py:481 +#: common/views.py:464 msgid "Parts imported" msgstr "" -#: common/views.py:508 order/templates/order/order_wizard/match_fields.html:27 +#: common/views.py:494 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:49 #: part/templates/part/import_wizard/match_fields.html:27 @@ -3646,186 +3645,186 @@ msgstr "" msgid "Previous Step" msgstr "" -#: company/models.py:107 +#: company/models.py:115 msgid "Company description" msgstr "" -#: company/models.py:108 +#: company/models.py:116 msgid "Description of the company" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:100 +#: company/models.py:121 company/templates/company/company_base.html:100 #: templates/InvenTree/settings/plugin_settings.html:54 #: templates/js/translated/company.js:522 msgid "Website" msgstr "" -#: company/models.py:115 +#: company/models.py:121 msgid "Company website URL" msgstr "" -#: company/models.py:119 +#: company/models.py:126 msgid "Phone number" msgstr "" -#: company/models.py:120 +#: company/models.py:128 msgid "Contact phone number" msgstr "" -#: company/models.py:123 +#: company/models.py:135 msgid "Contact email address" msgstr "" -#: company/models.py:126 company/templates/company/company_base.html:139 -#: order/models.py:265 order/templates/order/order_base.html:203 +#: company/models.py:140 company/templates/company/company_base.html:139 +#: order/models.py:313 order/templates/order/order_base.html:203 #: order/templates/order/return_order_base.html:174 #: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" -#: company/models.py:127 +#: company/models.py:142 msgid "Point of contact" msgstr "" -#: company/models.py:129 +#: company/models.py:148 msgid "Link to external company information" msgstr "" -#: company/models.py:143 +#: company/models.py:162 msgid "is customer" msgstr "" -#: company/models.py:143 +#: company/models.py:163 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:168 msgid "is supplier" msgstr "" -#: company/models.py:145 +#: company/models.py:169 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:147 +#: company/models.py:174 msgid "is manufacturer" msgstr "" -#: company/models.py:147 +#: company/models.py:175 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:154 +#: company/models.py:183 msgid "Default currency used for this company" msgstr "" -#: company/models.py:233 company/models.py:334 +#: company/models.py:268 company/models.py:377 #: company/templates/company/company_base.html:8 -#: company/templates/company/company_base.html:12 stock/api.py:671 +#: company/templates/company/company_base.html:12 stock/api.py:722 #: templates/InvenTree/search.html:178 templates/js/translated/company.js:495 msgid "Company" msgstr "" -#: company/models.py:335 +#: company/models.py:378 msgid "Select company" msgstr "" -#: company/models.py:338 +#: company/models.py:383 msgid "Address title" msgstr "" -#: company/models.py:339 +#: company/models.py:384 msgid "Title describing the address entry" msgstr "" -#: company/models.py:343 +#: company/models.py:390 msgid "Primary address" msgstr "" -#: company/models.py:344 +#: company/models.py:391 msgid "Set as primary address" msgstr "" -#: company/models.py:347 templates/js/translated/company.js:904 +#: company/models.py:396 templates/js/translated/company.js:904 #: templates/js/translated/company.js:961 msgid "Line 1" msgstr "" -#: company/models.py:348 +#: company/models.py:397 msgid "Address line 1" msgstr "" -#: company/models.py:352 templates/js/translated/company.js:905 +#: company/models.py:403 templates/js/translated/company.js:905 #: templates/js/translated/company.js:967 msgid "Line 2" msgstr "" -#: company/models.py:353 +#: company/models.py:404 msgid "Address line 2" msgstr "" -#: company/models.py:357 company/models.py:358 +#: company/models.py:410 company/models.py:411 #: templates/js/translated/company.js:973 msgid "Postal code" msgstr "" -#: company/models.py:362 +#: company/models.py:417 msgid "City/Region" msgstr "" -#: company/models.py:363 +#: company/models.py:418 msgid "Postal code city/region" msgstr "" -#: company/models.py:367 +#: company/models.py:424 msgid "State/Province" msgstr "" -#: company/models.py:368 +#: company/models.py:425 msgid "State or province" msgstr "" -#: company/models.py:372 templates/js/translated/company.js:991 +#: company/models.py:431 templates/js/translated/company.js:991 msgid "Country" msgstr "" -#: company/models.py:373 +#: company/models.py:432 msgid "Address country" msgstr "" -#: company/models.py:377 +#: company/models.py:438 msgid "Courier shipping notes" msgstr "" -#: company/models.py:378 +#: company/models.py:439 msgid "Notes for shipping courier" msgstr "" -#: company/models.py:382 +#: company/models.py:445 msgid "Internal shipping notes" msgstr "" -#: company/models.py:383 +#: company/models.py:446 msgid "Shipping notes for internal use" msgstr "" -#: company/models.py:388 +#: company/models.py:453 msgid "Link to address information (external)" msgstr "" -#: company/models.py:413 company/models.py:689 stock/models.py:709 -#: stock/serializers.py:205 stock/templates/stock/item_base.html:142 +#: company/models.py:482 company/models.py:776 stock/models.py:743 +#: stock/serializers.py:199 stock/templates/stock/item_base.html:142 #: templates/js/translated/bom.js:622 msgid "Base Part" msgstr "" -#: company/models.py:417 company/models.py:693 +#: company/models.py:484 company/models.py:778 msgid "Select part" msgstr "" -#: company/models.py:428 company/templates/company/company_base.html:76 +#: company/models.py:493 company/templates/company/company_base.html:76 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:145 part/serializers.py:447 +#: company/templates/company/supplier_part.html:145 part/serializers.py:467 #: stock/templates/stock/item_base.html:207 #: templates/js/translated/company.js:506 #: templates/js/translated/company.js:1108 @@ -3835,12 +3834,12 @@ msgstr "" msgid "Manufacturer" msgstr "" -#: company/models.py:429 +#: company/models.py:494 msgid "Select manufacturer" msgstr "" -#: company/models.py:435 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:153 part/serializers.py:453 +#: company/models.py:500 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 part/serializers.py:477 #: templates/js/translated/company.js:351 #: templates/js/translated/company.js:1107 #: templates/js/translated/company.js:1302 @@ -3850,69 +3849,69 @@ msgstr "" msgid "MPN" msgstr "" -#: company/models.py:436 +#: company/models.py:501 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:442 +#: company/models.py:508 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:448 +#: company/models.py:516 msgid "Manufacturer part description" msgstr "" -#: company/models.py:495 company/models.py:519 company/models.py:714 +#: company/models.py:573 company/models.py:600 company/models.py:802 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 #: stock/templates/stock/item_base.html:217 msgid "Manufacturer Part" msgstr "" -#: company/models.py:526 +#: company/models.py:607 msgid "Parameter name" msgstr "" -#: company/models.py:532 +#: company/models.py:613 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2318 templates/js/translated/company.js:1156 +#: stock/models.py:2332 templates/js/translated/company.js:1156 #: templates/js/translated/company.js:1409 templates/js/translated/part.js:1492 #: templates/js/translated/stock.js:1502 msgid "Value" msgstr "" -#: company/models.py:533 +#: company/models.py:614 msgid "Parameter value" msgstr "" -#: company/models.py:539 company/templates/company/supplier_part.html:168 -#: part/admin.py:39 part/models.py:924 part/models.py:3400 +#: company/models.py:621 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:992 part/models.py:3582 #: part/templates/part/part_base.html:284 #: templates/js/translated/company.js:1415 templates/js/translated/part.js:1511 #: templates/js/translated/part.js:1615 templates/js/translated/part.js:2368 msgid "Units" msgstr "" -#: company/models.py:540 +#: company/models.py:622 msgid "Parameter units" msgstr "" -#: company/models.py:634 +#: company/models.py:716 msgid "Pack units must be compatible with the base part units" msgstr "" -#: company/models.py:640 +#: company/models.py:723 msgid "Pack units must be greater than zero" msgstr "" -#: company/models.py:656 +#: company/models.py:737 msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:700 company/templates/company/company_base.html:81 -#: company/templates/company/supplier_part.html:129 order/models.py:387 -#: order/templates/order/order_base.html:136 part/bom.py:284 part/bom.py:312 -#: part/serializers.py:436 plugin/builtin/suppliers/digikey.py:25 +#: company/models.py:786 company/templates/company/company_base.html:81 +#: company/templates/company/supplier_part.html:129 order/models.py:445 +#: order/templates/order/order_base.html:136 part/bom.py:272 part/bom.py:310 +#: part/serializers.py:451 plugin/builtin/suppliers/digikey.py:25 #: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 #: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:224 #: templates/email/overdue_purchase_order.html:16 @@ -3925,28 +3924,28 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/models.py:701 +#: company/models.py:787 msgid "Select supplier" msgstr "" -#: company/models.py:707 part/serializers.py:442 +#: company/models.py:793 part/serializers.py:462 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:715 +#: company/models.py:803 msgid "Select manufacturer part" msgstr "" -#: company/models.py:721 +#: company/models.py:810 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:727 +#: company/models.py:818 msgid "Supplier part description" msgstr "" -#: company/models.py:732 company/templates/company/supplier_part.html:187 -#: part/admin.py:275 part/models.py:3802 part/templates/part/upload_bom.html:59 +#: company/models.py:825 company/templates/company/supplier_part.html:187 +#: part/admin.py:417 part/models.py:4000 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 #: report/templates/report/inventree_return_order_report_base.html:27 @@ -3956,27 +3955,27 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:834 part/models.py:1950 msgid "base cost" msgstr "" -#: company/models.py:736 part/models.py:1858 +#: company/models.py:835 part/models.py:1951 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:738 company/templates/company/supplier_part.html:160 -#: stock/admin.py:137 stock/models.py:735 stock/serializers.py:1297 +#: company/models.py:842 company/templates/company/supplier_part.html:160 +#: stock/admin.py:222 stock/models.py:774 stock/serializers.py:1246 #: stock/templates/stock/item_base.html:240 #: templates/js/translated/company.js:1636 #: templates/js/translated/stock.js:2394 msgid "Packaging" msgstr "" -#: company/models.py:738 +#: company/models.py:843 msgid "Part packaging" msgstr "" -#: company/models.py:742 templates/js/translated/company.js:1641 +#: company/models.py:848 templates/js/translated/company.js:1641 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:314 #: templates/js/translated/purchase_order.js:845 @@ -3986,27 +3985,27 @@ msgstr "" msgid "Pack Quantity" msgstr "" -#: company/models.py:743 +#: company/models.py:850 msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:759 part/models.py:1860 +#: company/models.py:869 part/models.py:1957 msgid "multiple" msgstr "" -#: company/models.py:759 +#: company/models.py:870 msgid "Order multiple" msgstr "" -#: company/models.py:768 +#: company/models.py:882 msgid "Quantity available from supplier" msgstr "" -#: company/models.py:772 +#: company/models.py:888 msgid "Availability Updated" msgstr "" -#: company/models.py:773 +#: company/models.py:889 msgid "Date of last update of availability data" msgstr "" @@ -4068,10 +4067,10 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:86 order/models.py:806 -#: order/models.py:1795 order/templates/order/return_order_base.html:131 -#: order/templates/order/sales_order_base.html:144 stock/models.py:754 -#: stock/models.py:755 stock/serializers.py:1044 +#: company/templates/company/company_base.html:86 order/models.py:885 +#: order/models.py:1957 order/templates/order/return_order_base.html:131 +#: order/templates/order/sales_order_base.html:144 stock/models.py:796 +#: stock/models.py:797 stock/serializers.py:1004 #: stock/templates/stock/item_base.html:405 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:502 @@ -4086,7 +4085,7 @@ msgstr "" msgid "Uses default currency" msgstr "" -#: company/templates/company/company_base.html:118 order/models.py:274 +#: company/templates/company/company_base.html:118 order/models.py:323 #: order/templates/order/order_base.html:210 #: order/templates/order/return_order_base.html:181 #: order/templates/order/sales_order_base.html:221 @@ -4166,7 +4165,7 @@ msgstr "" #: templates/InvenTree/index.html:227 templates/InvenTree/search.html:199 #: templates/InvenTree/settings/sidebar.html:57 #: templates/js/translated/search.js:205 templates/navbar.html:50 -#: users/models.py:197 +#: users/models.py:195 msgid "Purchase Orders" msgstr "" @@ -4189,7 +4188,7 @@ msgstr "" #: templates/InvenTree/index.html:259 templates/InvenTree/search.html:219 #: templates/InvenTree/settings/sidebar.html:59 #: templates/js/translated/search.js:219 templates/navbar.html:62 -#: users/models.py:198 +#: users/models.py:196 msgid "Sales Orders" msgstr "" @@ -4214,7 +4213,7 @@ msgstr "" #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:61 #: templates/js/translated/search.js:232 templates/navbar.html:65 -#: users/models.py:199 +#: users/models.py:197 msgid "Return Orders" msgstr "" @@ -4282,7 +4281,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:119 #: company/templates/company/supplier_part.html:15 company/views.py:31 -#: part/admin.py:60 part/templates/part/part_sidebar.html:33 +#: part/admin.py:122 part/templates/part/part_sidebar.html:33 #: templates/InvenTree/search.html:190 templates/navbar.html:48 msgid "Suppliers" msgstr "" @@ -4331,7 +4330,7 @@ msgid "Addresses" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:718 +#: company/templates/company/supplier_part.html:24 stock/models.py:754 #: stock/templates/stock/item_base.html:233 #: templates/js/translated/company.js:1590 #: templates/js/translated/purchase_order.js:761 @@ -4380,8 +4379,8 @@ msgstr "" msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:139 part/bom.py:285 -#: part/bom.py:313 part/serializers.py:442 +#: company/templates/company/supplier_part.html:139 part/bom.py:279 +#: part/bom.py:311 part/serializers.py:461 #: templates/js/translated/company.js:349 templates/js/translated/part.js:1786 #: templates/js/translated/pricing.js:510 #: templates/js/translated/purchase_order.js:1844 @@ -4430,16 +4429,16 @@ msgstr "" msgid "Update Part Availability" msgstr "" -#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:222 +#: company/templates/company/supplier_part_sidebar.html:5 part/stocktake.py:223 #: part/templates/part/category.html:183 -#: part/templates/part/category_sidebar.html:17 stock/admin.py:48 -#: stock/serializers.py:712 stock/templates/stock/location.html:170 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:69 +#: stock/serializers.py:704 stock/templates/stock/location.html:170 #: stock/templates/stock/location.html:184 #: stock/templates/stock/location.html:196 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:1060 #: templates/js/translated/search.js:172 templates/js/translated/stock.js:2737 -#: users/models.py:195 +#: users/models.py:193 msgid "Stock Items" msgstr "" @@ -4472,11 +4471,11 @@ msgstr "" msgid "New Company" msgstr "" -#: label/models.py:117 +#: label/models.py:115 msgid "Label name" msgstr "" -#: label/models.py:124 +#: label/models.py:123 msgid "Label description" msgstr "" @@ -4488,7 +4487,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:138 report/models.py:311 +#: label/models.py:138 report/models.py:315 msgid "Enabled" msgstr "" @@ -4512,7 +4511,7 @@ msgstr "" msgid "Label height, specified in mm" msgstr "" -#: label/models.py:158 report/models.py:304 +#: label/models.py:158 report/models.py:308 msgid "Filename Pattern" msgstr "" @@ -4520,14 +4519,14 @@ msgstr "" msgid "Pattern for generating label filenames" msgstr "" -#: label/models.py:326 label/models.py:367 label/models.py:395 -#: label/models.py:431 +#: label/models.py:308 label/models.py:347 label/models.py:372 +#: label/models.py:407 msgid "Query filters (comma-separated list of key=value pairs)" msgstr "" -#: label/models.py:327 label/models.py:368 label/models.py:396 -#: label/models.py:432 report/models.py:332 report/models.py:478 -#: report/models.py:516 report/models.py:554 report/models.py:675 +#: label/models.py:309 label/models.py:348 label/models.py:373 +#: label/models.py:408 report/models.py:336 report/models.py:487 +#: report/models.py:523 report/models.py:559 report/models.py:681 msgid "Filters" msgstr "" @@ -4544,7 +4543,7 @@ msgstr "" msgid "QR code" msgstr "" -#: order/admin.py:29 order/models.py:73 +#: order/admin.py:30 order/models.py:87 #: report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 #: templates/js/translated/order.js:327 @@ -4553,11 +4552,11 @@ msgstr "" msgid "Total Price" msgstr "" -#: order/api.py:230 +#: order/api.py:233 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1407 order/models.py:1227 order/models.py:1310 +#: order/api.py:1406 order/models.py:1358 order/models.py:1454 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 @@ -4571,7 +4570,7 @@ msgstr "" msgid "Purchase Order" msgstr "" -#: order/api.py:1411 order/models.py:1985 order/models.py:2031 +#: order/api.py:1410 order/models.py:2157 order/models.py:2208 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4580,192 +4579,192 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/api.py:1413 templates/js/translated/sales_order.js:1042 +#: order/api.py:1412 templates/js/translated/sales_order.js:1042 msgid "Unknown" msgstr "" -#: order/models.py:74 +#: order/models.py:88 msgid "Total price for this order" msgstr "" -#: order/models.py:79 order/serializers.py:50 +#: order/models.py:93 order/serializers.py:54 msgid "Order Currency" msgstr "" -#: order/models.py:81 order/serializers.py:51 +#: order/models.py:96 order/serializers.py:55 msgid "Currency for this order (leave blank to use company default)" msgstr "" -#: order/models.py:207 +#: order/models.py:228 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:227 +#: order/models.py:260 msgid "Order description (optional)" msgstr "" -#: order/models.py:232 +#: order/models.py:269 msgid "Select project code for this order" msgstr "" -#: order/models.py:235 order/models.py:1143 order/models.py:1501 +#: order/models.py:273 order/models.py:1263 order/models.py:1656 msgid "Link to external page" msgstr "" -#: order/models.py:240 +#: order/models.py:281 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:249 +#: order/models.py:295 msgid "Created By" msgstr "" -#: order/models.py:256 +#: order/models.py:303 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:266 +#: order/models.py:314 msgid "Point of contact for this order" msgstr "" -#: order/models.py:275 +#: order/models.py:324 msgid "Company address for this order" msgstr "" -#: order/models.py:365 order/models.py:793 +#: order/models.py:423 order/models.py:874 msgid "Order reference" msgstr "" -#: order/models.py:373 order/models.py:818 +#: order/models.py:431 order/models.py:898 msgid "Purchase order status" msgstr "" -#: order/models.py:388 +#: order/models.py:446 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:396 order/templates/order/order_base.html:148 +#: order/models.py:457 order/templates/order/order_base.html:148 #: templates/js/translated/purchase_order.js:1696 msgid "Supplier Reference" msgstr "" -#: order/models.py:396 +#: order/models.py:458 msgid "Supplier order reference code" msgstr "" -#: order/models.py:403 +#: order/models.py:467 msgid "received by" msgstr "" -#: order/models.py:408 order/models.py:1818 +#: order/models.py:473 order/models.py:1983 msgid "Issue Date" msgstr "" -#: order/models.py:409 order/models.py:1819 +#: order/models.py:474 order/models.py:1984 msgid "Date order was issued" msgstr "" -#: order/models.py:415 order/models.py:1825 +#: order/models.py:481 order/models.py:1991 msgid "Date order was completed" msgstr "" -#: order/models.py:450 +#: order/models.py:525 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:634 +#: order/models.py:719 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:807 +#: order/models.py:886 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:826 order/models.py:1812 +#: order/models.py:909 order/models.py:1976 msgid "Customer Reference " msgstr "" -#: order/models.py:826 order/models.py:1813 +#: order/models.py:910 order/models.py:1977 msgid "Customer order reference code" msgstr "" -#: order/models.py:828 order/models.py:1455 +#: order/models.py:914 order/models.py:1610 #: templates/js/translated/sales_order.js:843 #: templates/js/translated/sales_order.js:1024 msgid "Shipment Date" msgstr "" -#: order/models.py:835 +#: order/models.py:923 msgid "shipped by" msgstr "" -#: order/models.py:884 +#: order/models.py:974 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:888 +#: order/models.py:979 msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:891 templates/js/translated/sales_order.js:506 +#: order/models.py:983 templates/js/translated/sales_order.js:506 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:894 +#: order/models.py:988 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1124 +#: order/models.py:1235 msgid "Item quantity" msgstr "" -#: order/models.py:1136 +#: order/models.py:1252 msgid "Line item reference" msgstr "" -#: order/models.py:1138 +#: order/models.py:1259 msgid "Line item notes" msgstr "" -#: order/models.py:1149 +#: order/models.py:1271 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1167 +#: order/models.py:1292 msgid "Line item description (optional)" msgstr "" -#: order/models.py:1172 +#: order/models.py:1298 msgid "Context" msgstr "" -#: order/models.py:1173 +#: order/models.py:1299 msgid "Additional context for this line" msgstr "" -#: order/models.py:1182 +#: order/models.py:1309 msgid "Unit price" msgstr "" -#: order/models.py:1212 +#: order/models.py:1342 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1220 +#: order/models.py:1349 msgid "deleted" msgstr "" -#: order/models.py:1226 order/models.py:1310 order/models.py:1350 -#: order/models.py:1449 order/models.py:1598 order/models.py:1984 -#: order/models.py:2031 templates/js/translated/sales_order.js:1488 +#: order/models.py:1357 order/models.py:1453 order/models.py:1499 +#: order/models.py:1603 order/models.py:1755 order/models.py:2156 +#: order/models.py:2207 templates/js/translated/sales_order.js:1488 msgid "Order" msgstr "" -#: order/models.py:1244 +#: order/models.py:1377 msgid "Supplier part" msgstr "" -#: order/models.py:1251 order/templates/order/order_base.html:196 +#: order/models.py:1384 order/templates/order/order_base.html:196 #: templates/js/translated/part.js:1868 templates/js/translated/part.js:1899 #: templates/js/translated/purchase_order.js:1302 #: templates/js/translated/purchase_order.js:2163 @@ -4775,261 +4774,261 @@ msgstr "" msgid "Received" msgstr "" -#: order/models.py:1252 +#: order/models.py:1385 msgid "Number of items received" msgstr "" -#: order/models.py:1259 stock/models.py:857 stock/serializers.py:319 +#: order/models.py:1393 stock/models.py:915 stock/serializers.py:322 #: stock/templates/stock/item_base.html:183 #: templates/js/translated/stock.js:2281 msgid "Purchase Price" msgstr "" -#: order/models.py:1260 +#: order/models.py:1394 msgid "Unit purchase price" msgstr "" -#: order/models.py:1273 +#: order/models.py:1409 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1338 +#: order/models.py:1487 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1343 +#: order/models.py:1492 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1369 part/templates/part/part_pricing.html:107 +#: order/models.py:1518 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 msgid "Sale Price" msgstr "" -#: order/models.py:1370 +#: order/models.py:1519 msgid "Unit sale price" msgstr "" -#: order/models.py:1380 +#: order/models.py:1529 msgid "Shipped quantity" msgstr "" -#: order/models.py:1456 +#: order/models.py:1611 msgid "Date of shipment" msgstr "" -#: order/models.py:1461 templates/js/translated/sales_order.js:1036 +#: order/models.py:1617 templates/js/translated/sales_order.js:1036 msgid "Delivery Date" msgstr "" -#: order/models.py:1462 +#: order/models.py:1618 msgid "Date of delivery of shipment" msgstr "" -#: order/models.py:1469 +#: order/models.py:1626 msgid "Checked By" msgstr "" -#: order/models.py:1470 +#: order/models.py:1627 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1477 order/models.py:1685 order/serializers.py:1282 -#: order/serializers.py:1410 templates/js/translated/model_renderers.js:446 +#: order/models.py:1634 order/models.py:1845 order/serializers.py:1297 +#: order/serializers.py:1407 templates/js/translated/model_renderers.js:446 msgid "Shipment" msgstr "" -#: order/models.py:1478 +#: order/models.py:1635 msgid "Shipment number" msgstr "" -#: order/models.py:1486 +#: order/models.py:1643 msgid "Tracking Number" msgstr "" -#: order/models.py:1487 +#: order/models.py:1644 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1494 +#: order/models.py:1651 msgid "Invoice Number" msgstr "" -#: order/models.py:1495 +#: order/models.py:1652 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1517 +#: order/models.py:1672 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1520 +#: order/models.py:1675 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1633 order/models.py:1635 +#: order/models.py:1791 order/models.py:1793 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1641 +#: order/models.py:1800 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1643 +#: order/models.py:1803 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1646 +#: order/models.py:1806 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1665 order/serializers.py:1146 +#: order/models.py:1825 order/serializers.py:1174 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1668 +#: order/models.py:1828 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1669 plugin/base/barcodes/api.py:516 +#: order/models.py:1829 plugin/base/barcodes/api.py:481 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1677 +#: order/models.py:1837 msgid "Line" msgstr "" -#: order/models.py:1686 +#: order/models.py:1846 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1699 order/models.py:1992 +#: order/models.py:1859 order/models.py:2164 #: templates/js/translated/return_order.js:722 msgid "Item" msgstr "" -#: order/models.py:1700 +#: order/models.py:1860 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1703 +#: order/models.py:1869 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1782 +#: order/models.py:1946 msgid "Return Order reference" msgstr "" -#: order/models.py:1796 +#: order/models.py:1958 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1807 +#: order/models.py:1970 msgid "Return order status" msgstr "" -#: order/models.py:1977 +#: order/models.py:2149 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1993 +#: order/models.py:2165 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1998 +#: order/models.py:2171 msgid "Received Date" msgstr "" -#: order/models.py:1999 +#: order/models.py:2172 msgid "The date this this return item was received" msgstr "" -#: order/models.py:2010 templates/js/translated/return_order.js:733 +#: order/models.py:2183 templates/js/translated/return_order.js:733 #: templates/js/translated/table_filters.js:123 msgid "Outcome" msgstr "" -#: order/models.py:2010 +#: order/models.py:2184 msgid "Outcome for this line item" msgstr "" -#: order/models.py:2016 +#: order/models.py:2191 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:258 +#: order/serializers.py:264 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:273 order/serializers.py:1164 +#: order/serializers.py:279 order/serializers.py:1190 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:283 order/serializers.py:1174 +#: order/serializers.py:289 order/serializers.py:1200 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:396 +#: order/serializers.py:400 msgid "Order is not open" msgstr "" -#: order/serializers.py:414 +#: order/serializers.py:425 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:432 +#: order/serializers.py:443 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:437 +#: order/serializers.py:446 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:443 +#: order/serializers.py:454 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:444 +#: order/serializers.py:455 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:482 order/serializers.py:1250 +#: order/serializers.py:494 order/serializers.py:1268 msgid "Line Item" msgstr "" -#: order/serializers.py:488 +#: order/serializers.py:500 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:498 order/serializers.py:617 order/serializers.py:1624 +#: order/serializers.py:510 order/serializers.py:618 order/serializers.py:1623 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:517 templates/js/translated/purchase_order.js:1126 +#: order/serializers.py:526 templates/js/translated/purchase_order.js:1126 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:525 templates/js/translated/purchase_order.js:1150 +#: order/serializers.py:534 templates/js/translated/purchase_order.js:1150 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:538 templates/js/translated/barcode.js:52 +#: order/serializers.py:545 templates/js/translated/barcode.js:52 msgid "Barcode" msgstr "" -#: order/serializers.py:539 +#: order/serializers.py:546 msgid "Scanned barcode" msgstr "" -#: order/serializers.py:555 +#: order/serializers.py:562 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:579 +#: order/serializers.py:586 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:633 order/serializers.py:1638 +#: order/serializers.py:634 order/serializers.py:1639 msgid "Line items must be provided" msgstr "" @@ -5041,51 +5040,51 @@ msgstr "" msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:986 +#: order/serializers.py:1018 msgid "Sale price currency" msgstr "" -#: order/serializers.py:1043 +#: order/serializers.py:1078 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1107 order/serializers.py:1259 +#: order/serializers.py:1138 order/serializers.py:1277 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1129 +#: order/serializers.py:1157 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1272 +#: order/serializers.py:1287 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1294 order/serializers.py:1418 +#: order/serializers.py:1309 order/serializers.py:1415 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1297 order/serializers.py:1421 +#: order/serializers.py:1312 order/serializers.py:1418 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1351 +#: order/serializers.py:1359 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1361 +#: order/serializers.py:1366 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1591 +#: order/serializers.py:1593 msgid "Return order line item" msgstr "" -#: order/serializers.py:1597 +#: order/serializers.py:1599 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1600 +#: order/serializers.py:1602 msgid "Line item has already been received" msgstr "" @@ -5093,24 +5092,24 @@ msgstr "" msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1710 +#: order/serializers.py:1709 msgid "Line price currency" msgstr "" -#: order/tasks.py:26 +#: order/tasks.py:25 msgid "Overdue Purchase Order" msgstr "" -#: order/tasks.py:31 +#: order/tasks.py:30 #, python-brace-format msgid "Purchase order {po} is now overdue" msgstr "" -#: order/tasks.py:87 +#: order/tasks.py:75 msgid "Overdue Sales Order" msgstr "" -#: order/tasks.py:92 +#: order/tasks.py:80 #, python-brace-format msgid "Sales order {so} is now overdue" msgstr "" @@ -5479,579 +5478,579 @@ msgstr "" msgid "Match Supplier Parts" msgstr "" -#: order/views.py:390 +#: order/views.py:406 msgid "Sales order not found" msgstr "" -#: order/views.py:396 +#: order/views.py:412 msgid "Price not found" msgstr "" -#: order/views.py:399 +#: order/views.py:415 #, python-brace-format msgid "Updated {part} unit-price to {price}" msgstr "" -#: order/views.py:404 +#: order/views.py:421 #, python-brace-format msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/admin.py:32 part/admin.py:269 part/models.py:3665 part/stocktake.py:217 -#: stock/admin.py:119 +#: part/admin.py:39 part/admin.py:403 part/models.py:3851 part/stocktake.py:218 +#: stock/admin.py:151 msgid "Part ID" msgstr "" -#: part/admin.py:33 part/admin.py:271 part/models.py:3669 part/stocktake.py:218 -#: stock/admin.py:120 +#: part/admin.py:41 part/admin.py:410 part/models.py:3852 part/stocktake.py:219 +#: stock/admin.py:155 msgid "Part Name" msgstr "" -#: part/admin.py:34 part/stocktake.py:219 +#: part/admin.py:45 part/stocktake.py:220 msgid "Part Description" msgstr "" -#: part/admin.py:35 part/models.py:825 part/templates/part/part_base.html:269 +#: part/admin.py:48 part/models.py:887 part/templates/part/part_base.html:269 #: report/templates/report/inventree_slr_report.html:103 #: templates/js/translated/part.js:1226 templates/js/translated/part.js:2339 #: templates/js/translated/stock.js:2006 msgid "IPN" msgstr "" -#: part/admin.py:36 part/models.py:832 part/templates/part/part_base.html:277 -#: report/models.py:189 templates/js/translated/part.js:1231 +#: part/admin.py:50 part/models.py:896 part/templates/part/part_base.html:277 +#: report/models.py:191 templates/js/translated/part.js:1231 #: templates/js/translated/part.js:2345 msgid "Revision" msgstr "" -#: part/admin.py:37 part/admin.py:195 part/models.py:811 +#: part/admin.py:53 part/admin.py:317 part/models.py:869 #: part/templates/part/category.html:94 part/templates/part/part_base.html:298 msgid "Keywords" msgstr "" -#: part/admin.py:41 +#: part/admin.py:60 msgid "Part Image" msgstr "" -#: part/admin.py:42 part/admin.py:189 part/stocktake.py:220 +#: part/admin.py:63 part/admin.py:300 part/stocktake.py:221 msgid "Category ID" msgstr "" -#: part/admin.py:43 part/admin.py:190 part/stocktake.py:221 +#: part/admin.py:67 part/admin.py:302 part/stocktake.py:222 msgid "Category Name" msgstr "" -#: part/admin.py:44 part/admin.py:194 +#: part/admin.py:71 part/admin.py:314 msgid "Default Location ID" msgstr "" -#: part/admin.py:45 +#: part/admin.py:76 msgid "Default Supplier ID" msgstr "" -#: part/admin.py:46 part/models.py:800 part/templates/part/part_base.html:177 +#: part/admin.py:81 part/models.py:855 part/templates/part/part_base.html:177 msgid "Variant Of" msgstr "" -#: part/admin.py:47 part/models.py:917 part/templates/part/part_base.html:203 +#: part/admin.py:84 part/models.py:983 part/templates/part/part_base.html:203 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:197 +#: part/admin.py:126 part/templates/part/part_base.html:197 #: templates/js/translated/company.js:1679 #: templates/js/translated/table_filters.js:355 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:177 part/templates/part/part_base.html:210 +#: part/admin.py:132 part/bom.py:173 part/templates/part/part_base.html:210 #: templates/js/translated/bom.js:1202 templates/js/translated/build.js:2603 #: templates/js/translated/part.js:709 templates/js/translated/part.js:2146 #: templates/js/translated/table_filters.js:170 msgid "On Order" msgstr "" -#: part/admin.py:63 part/templates/part/part_sidebar.html:27 +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 msgid "Used In" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:241 stock/admin.py:142 +#: part/admin.py:150 part/templates/part/part_base.html:241 stock/admin.py:229 #: templates/js/translated/part.js:714 templates/js/translated/part.js:2150 msgid "Building" msgstr "" -#: part/admin.py:66 part/models.py:2916 part/models.py:2928 +#: part/admin.py:155 part/models.py:3053 part/models.py:3067 #: templates/js/translated/part.js:969 msgid "Minimum Cost" msgstr "" -#: part/admin.py:67 part/models.py:2922 part/models.py:2934 +#: part/admin.py:158 part/models.py:3060 part/models.py:3074 #: templates/js/translated/part.js:979 msgid "Maximum Cost" msgstr "" -#: part/admin.py:192 part/admin.py:266 stock/admin.py:43 stock/admin.py:134 +#: part/admin.py:306 part/admin.py:392 stock/admin.py:58 stock/admin.py:209 msgid "Parent ID" msgstr "" -#: part/admin.py:193 part/admin.py:268 stock/admin.py:44 +#: part/admin.py:310 part/admin.py:399 stock/admin.py:62 msgid "Parent Name" msgstr "" -#: part/admin.py:196 part/templates/part/category.html:88 +#: part/admin.py:318 part/templates/part/category.html:88 #: part/templates/part/category.html:101 msgid "Category Path" msgstr "" -#: part/admin.py:199 part/models.py:367 part/serializers.py:346 +#: part/admin.py:323 part/models.py:389 part/serializers.py:343 #: part/templates/part/cat_link.html:3 part/templates/part/category.html:23 #: part/templates/part/category.html:141 part/templates/part/category.html:161 #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:47 #: templates/js/translated/part.js:2802 templates/js/translated/search.js:130 -#: templates/navbar.html:24 users/models.py:192 +#: templates/navbar.html:24 users/models.py:190 msgid "Parts" msgstr "" -#: part/admin.py:261 +#: part/admin.py:383 msgid "BOM Level" msgstr "" -#: part/admin.py:263 +#: part/admin.py:386 msgid "BOM Item ID" msgstr "" -#: part/admin.py:267 +#: part/admin.py:396 msgid "Parent IPN" msgstr "" -#: part/admin.py:270 part/models.py:3673 +#: part/admin.py:407 part/models.py:3853 msgid "Part IPN" msgstr "" -#: part/admin.py:276 part/serializers.py:1130 +#: part/admin.py:420 part/serializers.py:1182 #: templates/js/translated/pricing.js:358 #: templates/js/translated/pricing.js:1024 msgid "Minimum Price" msgstr "" -#: part/admin.py:277 part/serializers.py:1142 +#: part/admin.py:425 part/serializers.py:1197 #: templates/js/translated/pricing.js:353 #: templates/js/translated/pricing.js:1032 msgid "Maximum Price" msgstr "" -#: part/api.py:506 +#: part/api.py:522 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:526 +#: part/api.py:540 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:544 +#: part/api.py:556 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:630 +#: part/api.py:640 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:775 +#: part/api.py:785 msgid "Valid" msgstr "" -#: part/api.py:776 +#: part/api.py:786 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:782 +#: part/api.py:792 msgid "This option must be selected" msgstr "" -#: part/bom.py:174 part/models.py:97 part/models.py:859 +#: part/bom.py:170 part/models.py:107 part/models.py:922 #: part/templates/part/category.html:116 part/templates/part/part_base.html:367 msgid "Default Location" msgstr "" -#: part/bom.py:175 templates/email/low_stock_notification.html:16 +#: part/bom.py:171 templates/email/low_stock_notification.html:16 msgid "Total Stock" msgstr "" -#: part/bom.py:176 part/templates/part/part_base.html:192 +#: part/bom.py:172 part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1893 msgid "Available Stock" msgstr "" -#: part/forms.py:48 +#: part/forms.py:49 msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:79 part/models.py:3614 part/templates/part/category.html:16 +#: part/models.py:88 part/models.py:3801 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:80 part/templates/part/category.html:136 +#: part/models.py:89 part/templates/part/category.html:136 #: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 -#: users/models.py:191 +#: users/models.py:189 msgid "Part Categories" msgstr "" -#: part/models.py:98 +#: part/models.py:108 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:103 stock/models.py:154 templates/js/translated/stock.js:2743 +#: part/models.py:113 stock/models.py:164 templates/js/translated/stock.js:2743 #: templates/js/translated/table_filters.js:239 #: templates/js/translated/table_filters.js:283 msgid "Structural" msgstr "" -#: part/models.py:105 +#: part/models.py:115 msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." msgstr "" -#: part/models.py:109 +#: part/models.py:124 msgid "Default keywords" msgstr "" -#: part/models.py:109 +#: part/models.py:125 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:114 stock/models.py:85 stock/models.py:142 +#: part/models.py:131 stock/models.py:91 stock/models.py:147 #: templates/InvenTree/settings/settings_staff_js.html:456 msgid "Icon" msgstr "" -#: part/models.py:115 stock/models.py:143 +#: part/models.py:132 stock/models.py:148 msgid "Icon (optional)" msgstr "" -#: part/models.py:134 +#: part/models.py:152 msgid "You cannot make this part category structural because some parts are already assigned to it!" msgstr "" -#: part/models.py:452 +#: part/models.py:479 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:495 part/models.py:498 +#: part/models.py:523 part/models.py:530 #, python-brace-format msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" msgstr "" -#: part/models.py:507 +#: part/models.py:542 #, python-brace-format msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" msgstr "" -#: part/models.py:574 +#: part/models.py:607 #, python-brace-format msgid "IPN must match regex pattern {pattern}" msgstr "" -#: part/models.py:644 +#: part/models.py:687 msgid "Stock item with this serial number already exists" msgstr "" -#: part/models.py:739 +#: part/models.py:790 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:744 +#: part/models.py:800 msgid "Part with this Name, IPN and Revision already exists." msgstr "" -#: part/models.py:758 +#: part/models.py:815 msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:782 part/models.py:3670 +#: part/models.py:838 part/models.py:3852 msgid "Part name" msgstr "" -#: part/models.py:788 +#: part/models.py:843 msgid "Is Template" msgstr "" -#: part/models.py:789 +#: part/models.py:844 msgid "Is this part a template part?" msgstr "" -#: part/models.py:799 +#: part/models.py:854 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:806 +#: part/models.py:862 msgid "Part description (optional)" msgstr "" -#: part/models.py:812 +#: part/models.py:870 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:819 part/models.py:3193 part/models.py:3613 -#: part/serializers.py:359 part/serializers.py:1016 -#: part/templates/part/part_base.html:260 stock/api.py:633 +#: part/models.py:879 part/models.py:3359 part/models.py:3800 +#: part/serializers.py:358 part/serializers.py:1038 +#: part/templates/part/part_base.html:260 stock/api.py:694 #: templates/InvenTree/settings/settings_staff_js.html:300 #: templates/js/translated/notification.js:60 #: templates/js/translated/part.js:2375 msgid "Category" msgstr "" -#: part/models.py:820 +#: part/models.py:880 msgid "Part category" msgstr "" -#: part/models.py:826 +#: part/models.py:888 msgid "Internal Part Number" msgstr "" -#: part/models.py:831 +#: part/models.py:895 msgid "Part revision or version number" msgstr "" -#: part/models.py:857 +#: part/models.py:920 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:902 part/templates/part/part_base.html:376 +#: part/models.py:966 part/templates/part/part_base.html:376 msgid "Default Supplier" msgstr "" -#: part/models.py:903 +#: part/models.py:967 msgid "Default supplier part" msgstr "" -#: part/models.py:910 +#: part/models.py:974 msgid "Default Expiry" msgstr "" -#: part/models.py:911 +#: part/models.py:975 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:918 +#: part/models.py:984 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:925 +#: part/models.py:993 msgid "Units of measure for this part" msgstr "" -#: part/models.py:934 +#: part/models.py:1000 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:940 +#: part/models.py:1006 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:946 +#: part/models.py:1012 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:951 +#: part/models.py:1018 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:956 +#: part/models.py:1024 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:961 +#: part/models.py:1028 msgid "Is this part active?" msgstr "" -#: part/models.py:966 +#: part/models.py:1034 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:968 +#: part/models.py:1040 msgid "BOM checksum" msgstr "" -#: part/models.py:968 +#: part/models.py:1041 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:971 +#: part/models.py:1049 msgid "BOM checked by" msgstr "" -#: part/models.py:973 +#: part/models.py:1054 msgid "BOM checked date" msgstr "" -#: part/models.py:977 +#: part/models.py:1070 msgid "Creation User" msgstr "" -#: part/models.py:983 +#: part/models.py:1080 msgid "Owner responsible for this part" msgstr "" -#: part/models.py:989 part/templates/part/part_base.html:339 +#: part/models.py:1085 part/templates/part/part_base.html:339 #: stock/templates/stock/item_base.html:451 #: templates/js/translated/part.js:2469 msgid "Last Stocktake" msgstr "" -#: part/models.py:1860 +#: part/models.py:1958 msgid "Sell multiple" msgstr "" -#: part/models.py:2839 +#: part/models.py:2967 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:2856 +#: part/models.py:2983 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:2857 +#: part/models.py:2984 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:2862 +#: part/models.py:2990 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:2863 +#: part/models.py:2991 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:2868 +#: part/models.py:2997 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:2869 +#: part/models.py:2998 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:2874 +#: part/models.py:3004 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:2875 +#: part/models.py:3005 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:2880 +#: part/models.py:3011 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:2881 +#: part/models.py:3012 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:2886 +#: part/models.py:3018 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:2887 +#: part/models.py:3019 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:2892 +#: part/models.py:3025 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:2893 +#: part/models.py:3026 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:2898 +#: part/models.py:3032 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:2899 +#: part/models.py:3033 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:2904 +#: part/models.py:3039 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:2905 +#: part/models.py:3040 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:2910 +#: part/models.py:3046 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:2911 +#: part/models.py:3047 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:2917 +#: part/models.py:3054 msgid "Override minimum cost" msgstr "" -#: part/models.py:2923 +#: part/models.py:3061 msgid "Override maximum cost" msgstr "" -#: part/models.py:2929 +#: part/models.py:3068 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:2935 +#: part/models.py:3075 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:2940 +#: part/models.py:3081 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:2941 +#: part/models.py:3082 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:2946 +#: part/models.py:3088 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:2947 +#: part/models.py:3089 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:2952 +#: part/models.py:3095 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:2953 +#: part/models.py:3096 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:2958 +#: part/models.py:3102 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:2959 +#: part/models.py:3103 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:2978 +#: part/models.py:3122 msgid "Part for stocktake" msgstr "" -#: part/models.py:2983 +#: part/models.py:3127 msgid "Item Count" msgstr "" -#: part/models.py:2984 +#: part/models.py:3128 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:2991 +#: part/models.py:3136 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:2995 part/models.py:3075 +#: part/models.py:3140 part/models.py:3223 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report_base.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -6063,334 +6062,334 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:2996 +#: part/models.py:3141 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3004 +#: part/models.py:3149 msgid "Additional notes" msgstr "" -#: part/models.py:3012 +#: part/models.py:3159 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3017 +#: part/models.py:3165 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3018 +#: part/models.py:3166 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3023 +#: part/models.py:3172 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3024 +#: part/models.py:3173 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3082 templates/InvenTree/settings/settings_staff_js.html:529 +#: part/models.py:3229 templates/InvenTree/settings/settings_staff_js.html:529 msgid "Report" msgstr "" -#: part/models.py:3083 +#: part/models.py:3230 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3088 templates/InvenTree/settings/settings_staff_js.html:536 +#: part/models.py:3235 templates/InvenTree/settings/settings_staff_js.html:536 msgid "Part Count" msgstr "" -#: part/models.py:3089 +#: part/models.py:3236 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3097 +#: part/models.py:3246 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3233 +#: part/models.py:3406 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:3250 +#: part/models.py:3423 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:3270 templates/js/translated/part.js:2866 +#: part/models.py:3444 templates/js/translated/part.js:2866 msgid "Test Name" msgstr "" -#: part/models.py:3271 +#: part/models.py:3445 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3276 +#: part/models.py:3452 msgid "Test Description" msgstr "" -#: part/models.py:3277 +#: part/models.py:3453 msgid "Enter description for this test" msgstr "" -#: part/models.py:3282 templates/js/translated/part.js:2875 +#: part/models.py:3458 templates/js/translated/part.js:2875 #: templates/js/translated/table_filters.js:477 msgid "Required" msgstr "" -#: part/models.py:3283 +#: part/models.py:3459 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3288 templates/js/translated/part.js:2883 +#: part/models.py:3464 templates/js/translated/part.js:2883 msgid "Requires Value" msgstr "" -#: part/models.py:3289 +#: part/models.py:3465 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3294 templates/js/translated/part.js:2890 +#: part/models.py:3470 templates/js/translated/part.js:2890 msgid "Requires Attachment" msgstr "" -#: part/models.py:3295 +#: part/models.py:3472 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3340 +#: part/models.py:3519 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3345 +#: part/models.py:3524 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3363 +#: part/models.py:3544 msgid "Choices must be unique" msgstr "" -#: part/models.py:3379 +#: part/models.py:3561 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3394 +#: part/models.py:3576 msgid "Parameter Name" msgstr "" -#: part/models.py:3400 +#: part/models.py:3583 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3410 +#: part/models.py:3591 msgid "Parameter description" msgstr "" -#: part/models.py:3416 templates/js/translated/part.js:1627 +#: part/models.py:3597 templates/js/translated/part.js:1627 #: templates/js/translated/table_filters.js:817 msgid "Checkbox" msgstr "" -#: part/models.py:3417 +#: part/models.py:3598 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3422 templates/js/translated/part.js:1636 +#: part/models.py:3603 templates/js/translated/part.js:1636 msgid "Choices" msgstr "" -#: part/models.py:3423 +#: part/models.py:3604 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3497 +#: part/models.py:3681 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3539 +#: part/models.py:3724 msgid "Parent Part" msgstr "" -#: part/models.py:3544 part/models.py:3619 part/models.py:3620 +#: part/models.py:3732 part/models.py:3808 part/models.py:3809 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3549 +#: part/models.py:3737 msgid "Data" msgstr "" -#: part/models.py:3549 +#: part/models.py:3738 msgid "Parameter Value" msgstr "" -#: part/models.py:3624 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:3815 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:3625 +#: part/models.py:3816 msgid "Default Parameter Value" msgstr "" -#: part/models.py:3662 +#: part/models.py:3850 msgid "Part ID or part name" msgstr "" -#: part/models.py:3666 +#: part/models.py:3851 msgid "Unique part ID value" msgstr "" -#: part/models.py:3674 +#: part/models.py:3853 msgid "Part IPN value" msgstr "" -#: part/models.py:3677 +#: part/models.py:3854 msgid "Level" msgstr "" -#: part/models.py:3678 +#: part/models.py:3854 msgid "BOM level" msgstr "" -#: part/models.py:3684 part/models.py:4079 stock/api.py:648 +#: part/models.py:3860 part/models.py:4296 stock/api.py:706 msgid "BOM Item" msgstr "" -#: part/models.py:3765 +#: part/models.py:3944 msgid "Select parent part" msgstr "" -#: part/models.py:3773 +#: part/models.py:3954 msgid "Sub part" msgstr "" -#: part/models.py:3774 +#: part/models.py:3955 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:3780 +#: part/models.py:3966 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:3785 +#: part/models.py:3972 msgid "This BOM item is optional" msgstr "" -#: part/models.py:3791 +#: part/models.py:3978 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:3795 part/templates/part/upload_bom.html:55 +#: part/models.py:3985 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:3796 +#: part/models.py:3986 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:3799 +#: part/models.py:3993 msgid "BOM item reference" msgstr "" -#: part/models.py:3802 +#: part/models.py:4001 msgid "BOM item notes" msgstr "" -#: part/models.py:3806 +#: part/models.py:4007 msgid "Checksum" msgstr "" -#: part/models.py:3806 +#: part/models.py:4008 msgid "BOM line checksum" msgstr "" -#: part/models.py:3811 templates/js/translated/table_filters.js:174 +#: part/models.py:4013 templates/js/translated/table_filters.js:174 msgid "Validated" msgstr "" -#: part/models.py:3812 +#: part/models.py:4014 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:3817 part/templates/part/upload_bom.html:57 +#: part/models.py:4019 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:178 #: templates/js/translated/table_filters.js:211 msgid "Gets inherited" msgstr "" -#: part/models.py:3818 +#: part/models.py:4020 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:3823 part/templates/part/upload_bom.html:56 +#: part/models.py:4025 part/templates/part/upload_bom.html:56 #: templates/js/translated/bom.js:1046 msgid "Allow Variants" msgstr "" -#: part/models.py:3824 +#: part/models.py:4026 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3910 stock/models.py:613 +#: part/models.py:4111 stock/models.py:640 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:3919 part/models.py:3921 +#: part/models.py:4121 part/models.py:4123 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4046 +#: part/models.py:4263 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4067 +#: part/models.py:4284 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4080 +#: part/models.py:4297 msgid "Parent BOM item" msgstr "" -#: part/models.py:4088 +#: part/models.py:4305 msgid "Substitute part" msgstr "" -#: part/models.py:4103 +#: part/models.py:4321 msgid "Part 1" msgstr "" -#: part/models.py:4107 +#: part/models.py:4329 msgid "Part 2" msgstr "" -#: part/models.py:4107 +#: part/models.py:4330 msgid "Select Related Part" msgstr "" -#: part/models.py:4124 +#: part/models.py:4349 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4128 +#: part/models.py:4354 msgid "Duplicate relationship already exists" msgstr "" -#: part/serializers.py:176 part/serializers.py:199 stock/serializers.py:324 +#: part/serializers.py:178 part/serializers.py:196 stock/serializers.py:328 msgid "Purchase currency of this stock item" msgstr "" -#: part/serializers.py:352 +#: part/serializers.py:349 msgid "No parts selected" msgstr "" -#: part/serializers.py:360 +#: part/serializers.py:359 msgid "Select category" msgstr "" -#: part/serializers.py:390 +#: part/serializers.py:389 msgid "Original Part" msgstr "" @@ -6402,299 +6401,299 @@ msgstr "" msgid "Copy Image" msgstr "" -#: part/serializers.py:395 +#: part/serializers.py:396 msgid "Copy image from original part" msgstr "" -#: part/serializers.py:400 part/templates/part/detail.html:277 +#: part/serializers.py:402 part/templates/part/detail.html:277 msgid "Copy BOM" msgstr "" -#: part/serializers.py:400 +#: part/serializers.py:403 msgid "Copy bill of materials from original part" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:409 msgid "Copy Parameters" msgstr "" -#: part/serializers.py:405 +#: part/serializers.py:410 msgid "Copy parameter data from original part" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:416 msgid "Copy Notes" msgstr "" -#: part/serializers.py:410 +#: part/serializers.py:417 msgid "Copy notes from original part" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:430 msgid "Initial Stock Quantity" msgstr "" -#: part/serializers.py:420 +#: part/serializers.py:432 msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:439 msgid "Initial Stock Location" msgstr "" -#: part/serializers.py:426 +#: part/serializers.py:440 msgid "Specify initial stock location for this Part" msgstr "" -#: part/serializers.py:436 +#: part/serializers.py:452 msgid "Select supplier (or leave blank to skip)" msgstr "" -#: part/serializers.py:447 +#: part/serializers.py:468 msgid "Select manufacturer (or leave blank to skip)" msgstr "" -#: part/serializers.py:453 +#: part/serializers.py:478 msgid "Manufacturer part number" msgstr "" -#: part/serializers.py:459 +#: part/serializers.py:485 msgid "Selected company is not a valid supplier" msgstr "" -#: part/serializers.py:466 +#: part/serializers.py:494 msgid "Selected company is not a valid manufacturer" msgstr "" -#: part/serializers.py:477 +#: part/serializers.py:505 msgid "Manufacturer part matching this MPN already exists" msgstr "" -#: part/serializers.py:485 +#: part/serializers.py:512 msgid "Supplier part matching this SKU already exists" msgstr "" -#: part/serializers.py:748 part/templates/part/copy_part.html:9 +#: part/serializers.py:777 part/templates/part/copy_part.html:9 #: templates/js/translated/part.js:471 msgid "Duplicate Part" msgstr "" -#: part/serializers.py:748 +#: part/serializers.py:778 msgid "Copy initial data from another Part" msgstr "" -#: part/serializers.py:753 templates/js/translated/part.js:102 +#: part/serializers.py:784 templates/js/translated/part.js:102 msgid "Initial Stock" msgstr "" -#: part/serializers.py:753 +#: part/serializers.py:785 msgid "Create Part with initial stock quantity" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:791 msgid "Supplier Information" msgstr "" -#: part/serializers.py:758 +#: part/serializers.py:792 msgid "Add initial supplier information for this part" msgstr "" -#: part/serializers.py:764 +#: part/serializers.py:800 msgid "Copy Category Parameters" msgstr "" -#: part/serializers.py:765 +#: part/serializers.py:801 msgid "Copy parameter templates from selected part category" msgstr "" -#: part/serializers.py:770 +#: part/serializers.py:806 msgid "Existing Image" msgstr "" -#: part/serializers.py:771 +#: part/serializers.py:807 msgid "Filename of an existing part image" msgstr "" -#: part/serializers.py:791 +#: part/serializers.py:824 msgid "Image file does not exist" msgstr "" -#: part/serializers.py:1010 +#: part/serializers.py:1030 msgid "Limit stocktake report to a particular part, and any variant parts" msgstr "" -#: part/serializers.py:1016 +#: part/serializers.py:1040 msgid "Limit stocktake report to a particular part category, and any child categories" msgstr "" -#: part/serializers.py:1022 +#: part/serializers.py:1050 msgid "Limit stocktake report to a particular stock location, and any child locations" msgstr "" -#: part/serializers.py:1027 +#: part/serializers.py:1056 msgid "Exclude External Stock" msgstr "" -#: part/serializers.py:1028 +#: part/serializers.py:1057 msgid "Exclude stock items in external locations" msgstr "" -#: part/serializers.py:1033 +#: part/serializers.py:1062 msgid "Generate Report" msgstr "" -#: part/serializers.py:1034 +#: part/serializers.py:1063 msgid "Generate report file containing calculated stocktake data" msgstr "" -#: part/serializers.py:1039 +#: part/serializers.py:1068 msgid "Update Parts" msgstr "" -#: part/serializers.py:1040 +#: part/serializers.py:1069 msgid "Update specified parts with calculated stocktake data" msgstr "" -#: part/serializers.py:1047 +#: part/serializers.py:1077 msgid "Stocktake functionality is not enabled" msgstr "" -#: part/serializers.py:1131 +#: part/serializers.py:1183 msgid "Override calculated value for minimum price" msgstr "" -#: part/serializers.py:1136 +#: part/serializers.py:1190 msgid "Minimum price currency" msgstr "" -#: part/serializers.py:1143 +#: part/serializers.py:1198 msgid "Override calculated value for maximum price" msgstr "" -#: part/serializers.py:1148 +#: part/serializers.py:1205 msgid "Maximum price currency" msgstr "" -#: part/serializers.py:1164 +#: part/serializers.py:1234 msgid "Update" msgstr "" -#: part/serializers.py:1165 +#: part/serializers.py:1235 msgid "Update pricing for this part" msgstr "" -#: part/serializers.py:1186 +#: part/serializers.py:1258 #, python-brace-format msgid "Could not convert from provided currencies to {default_currency}" msgstr "" -#: part/serializers.py:1190 +#: part/serializers.py:1265 msgid "Minimum price must not be greater than maximum price" msgstr "" -#: part/serializers.py:1191 +#: part/serializers.py:1268 msgid "Maximum price must not be less than minimum price" msgstr "" -#: part/serializers.py:1498 +#: part/serializers.py:1592 msgid "Select part to copy BOM from" msgstr "" -#: part/serializers.py:1506 +#: part/serializers.py:1600 msgid "Remove Existing Data" msgstr "" -#: part/serializers.py:1507 +#: part/serializers.py:1601 msgid "Remove existing BOM items before copying" msgstr "" -#: part/serializers.py:1512 +#: part/serializers.py:1606 msgid "Include Inherited" msgstr "" -#: part/serializers.py:1513 +#: part/serializers.py:1607 msgid "Include BOM items which are inherited from templated parts" msgstr "" -#: part/serializers.py:1518 +#: part/serializers.py:1612 msgid "Skip Invalid Rows" msgstr "" -#: part/serializers.py:1519 +#: part/serializers.py:1613 msgid "Enable this option to skip invalid rows" msgstr "" -#: part/serializers.py:1524 +#: part/serializers.py:1618 msgid "Copy Substitute Parts" msgstr "" -#: part/serializers.py:1525 +#: part/serializers.py:1619 msgid "Copy substitute parts when duplicate BOM items" msgstr "" -#: part/serializers.py:1565 +#: part/serializers.py:1653 msgid "Clear Existing BOM" msgstr "" -#: part/serializers.py:1566 +#: part/serializers.py:1654 msgid "Delete existing BOM items before uploading" msgstr "" -#: part/serializers.py:1596 +#: part/serializers.py:1684 msgid "No part column specified" msgstr "" -#: part/serializers.py:1640 +#: part/serializers.py:1728 msgid "Multiple matching parts found" msgstr "" -#: part/serializers.py:1643 +#: part/serializers.py:1731 msgid "No matching part found" msgstr "" -#: part/serializers.py:1646 +#: part/serializers.py:1734 msgid "Part is not designated as a component" msgstr "" -#: part/serializers.py:1655 +#: part/serializers.py:1743 msgid "Quantity not provided" msgstr "" -#: part/serializers.py:1663 +#: part/serializers.py:1751 msgid "Invalid quantity" msgstr "" -#: part/serializers.py:1684 +#: part/serializers.py:1772 msgid "At least one BOM item is required" msgstr "" -#: part/stocktake.py:223 templates/js/translated/part.js:1066 +#: part/stocktake.py:224 templates/js/translated/part.js:1066 #: templates/js/translated/part.js:1820 templates/js/translated/part.js:1875 #: templates/js/translated/purchase_order.js:2078 msgid "Total Quantity" msgstr "" -#: part/stocktake.py:224 +#: part/stocktake.py:225 msgid "Total Cost Min" msgstr "" -#: part/stocktake.py:225 +#: part/stocktake.py:226 msgid "Total Cost Max" msgstr "" -#: part/stocktake.py:289 +#: part/stocktake.py:284 msgid "Stocktake Report Available" msgstr "" -#: part/stocktake.py:290 +#: part/stocktake.py:285 msgid "A new stocktake report is available for download" msgstr "" -#: part/tasks.py:33 +#: part/tasks.py:37 msgid "Low stock notification" msgstr "" -#: part/tasks.py:34 +#: part/tasks.py:39 #, python-brace-format msgid "The available stock for {part.name} has fallen below the configured minimum level" msgstr "" @@ -6709,12 +6708,11 @@ msgstr "" #: part/templates/part/bom.html:17 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "This BOM was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:21 -#, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "This BOM has not been validated." msgstr "" #: part/templates/part/category.html:35 @@ -6826,9 +6824,9 @@ msgid "Add stocktake information" msgstr "" #: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 -#: stock/admin.py:148 templates/InvenTree/settings/part_stocktake.html:30 +#: stock/admin.py:249 templates/InvenTree/settings/part_stocktake.html:30 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/stock.js:2186 users/models.py:193 +#: templates/js/translated/stock.js:2186 users/models.py:191 msgid "Stocktake" msgstr "" @@ -7236,7 +7234,7 @@ msgstr "" msgid "Edit" msgstr "" -#: part/templates/part/prices.html:28 stock/admin.py:147 +#: part/templates/part/prices.html:28 stock/admin.py:245 #: stock/templates/stock/item_base.html:446 #: templates/js/translated/company.js:1693 #: templates/js/translated/company.js:1703 @@ -7365,11 +7363,11 @@ msgstr "" msgid "Create a new variant part from this template" msgstr "" -#: part/templatetags/inventree_extras.py:185 +#: part/templatetags/inventree_extras.py:177 msgid "Unknown database" msgstr "" -#: part/templatetags/inventree_extras.py:231 +#: part/templatetags/inventree_extras.py:223 msgid "{version.inventreeInstanceTitle()} v{version.inventreeVersion()}" msgstr "" @@ -7377,107 +7375,107 @@ msgstr "" msgid "Match References" msgstr "" -#: part/views.py:243 +#: part/views.py:275 #, python-brace-format msgid "Can't import part {new_part.name} because there is no category assigned" msgstr "" -#: part/views.py:384 +#: part/views.py:425 msgid "Select Part Image" msgstr "" -#: part/views.py:410 +#: part/views.py:448 msgid "Updated part image" msgstr "" -#: part/views.py:413 +#: part/views.py:451 msgid "Part image not found" msgstr "" -#: part/views.py:508 +#: part/views.py:545 msgid "Part Pricing" msgstr "" -#: plugin/base/action/api.py:27 +#: plugin/base/action/api.py:24 msgid "No action specified" msgstr "" -#: plugin/base/action/api.py:38 +#: plugin/base/action/api.py:33 msgid "No matching action found" msgstr "" -#: plugin/base/barcodes/api.py:126 plugin/base/barcodes/api.py:346 -#: plugin/base/barcodes/api.py:540 +#: plugin/base/barcodes/api.py:124 plugin/base/barcodes/api.py:328 +#: plugin/base/barcodes/api.py:503 msgid "No match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:130 +#: plugin/base/barcodes/api.py:128 msgid "Match found for barcode data" msgstr "" -#: plugin/base/barcodes/api.py:157 +#: plugin/base/barcodes/api.py:154 #: templates/js/translated/purchase_order.js:1402 msgid "Barcode matches existing item" msgstr "" -#: plugin/base/barcodes/api.py:309 +#: plugin/base/barcodes/api.py:293 msgid "No matching part data found" msgstr "" -#: plugin/base/barcodes/api.py:326 +#: plugin/base/barcodes/api.py:310 msgid "No matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:331 +#: plugin/base/barcodes/api.py:314 msgid "Multiple matching supplier parts found" msgstr "" -#: plugin/base/barcodes/api.py:356 +#: plugin/base/barcodes/api.py:338 msgid "Matched supplier part" msgstr "" -#: plugin/base/barcodes/api.py:411 +#: plugin/base/barcodes/api.py:387 msgid "Item has already been received" msgstr "" -#: plugin/base/barcodes/api.py:449 +#: plugin/base/barcodes/api.py:424 msgid "No match for supplier barcode" msgstr "" -#: plugin/base/barcodes/api.py:498 +#: plugin/base/barcodes/api.py:467 msgid "Multiple matching line items found" msgstr "" -#: plugin/base/barcodes/api.py:503 +#: plugin/base/barcodes/api.py:470 msgid "No matching line item found" msgstr "" -#: plugin/base/barcodes/api.py:545 plugin/base/barcodes/api.py:552 +#: plugin/base/barcodes/api.py:508 plugin/base/barcodes/api.py:515 msgid "Barcode does not match an existing stock item" msgstr "" -#: plugin/base/barcodes/api.py:563 +#: plugin/base/barcodes/api.py:526 msgid "Stock item does not match line item" msgstr "" -#: plugin/base/barcodes/api.py:587 templates/js/translated/build.js:2579 +#: plugin/base/barcodes/api.py:550 templates/js/translated/build.js:2579 #: templates/js/translated/sales_order.js:1917 msgid "Insufficient stock available" msgstr "" -#: plugin/base/barcodes/api.py:599 +#: plugin/base/barcodes/api.py:559 msgid "Stock item allocated to sales order" msgstr "" -#: plugin/base/barcodes/api.py:603 +#: plugin/base/barcodes/api.py:563 msgid "Not enough information" msgstr "" -#: plugin/base/barcodes/mixins.py:146 plugin/base/barcodes/mixins.py:181 +#: plugin/base/barcodes/mixins.py:147 plugin/base/barcodes/mixins.py:179 msgid "Found multiple matching supplier parts for barcode" msgstr "" -#: plugin/base/barcodes/mixins.py:198 +#: plugin/base/barcodes/mixins.py:197 #, python-brace-format msgid "Found multiple purchase orders matching '{order}'" msgstr "" @@ -7491,11 +7489,11 @@ msgstr "" msgid "Purchase order does not match supplier" msgstr "" -#: plugin/base/barcodes/mixins.py:436 +#: plugin/base/barcodes/mixins.py:441 msgid "Failed to find pending line item for supplier part" msgstr "" -#: plugin/base/barcodes/mixins.py:469 +#: plugin/base/barcodes/mixins.py:472 msgid "Further information required to receive line item" msgstr "" @@ -7511,7 +7509,7 @@ msgstr "" msgid "Purchase Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:88 +#: plugin/base/barcodes/serializers.py:87 msgid "Purchase order is not pending" msgstr "" @@ -7519,7 +7517,7 @@ msgstr "" msgid "PurchaseOrder to receive items against" msgstr "" -#: plugin/base/barcodes/serializers.py:112 +#: plugin/base/barcodes/serializers.py:111 msgid "Purchase order has not been placed" msgstr "" @@ -7527,19 +7525,19 @@ msgstr "" msgid "Location to receive items into" msgstr "" -#: plugin/base/barcodes/serializers.py:126 +#: plugin/base/barcodes/serializers.py:125 msgid "Cannot select a structural location" msgstr "" -#: plugin/base/barcodes/serializers.py:140 +#: plugin/base/barcodes/serializers.py:139 msgid "Sales Order to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:147 +#: plugin/base/barcodes/serializers.py:145 msgid "Sales order is not pending" msgstr "" -#: plugin/base/barcodes/serializers.py:154 +#: plugin/base/barcodes/serializers.py:153 msgid "Sales order line item to allocate items against" msgstr "" @@ -7547,15 +7545,15 @@ msgstr "" msgid "Sales order shipment to allocate items against" msgstr "" -#: plugin/base/barcodes/serializers.py:167 +#: plugin/base/barcodes/serializers.py:166 msgid "Shipment has already been delivered" msgstr "" -#: plugin/base/barcodes/serializers.py:173 +#: plugin/base/barcodes/serializers.py:171 msgid "Quantity to allocate" msgstr "" -#: plugin/base/label/label.py:40 +#: plugin/base/label/label.py:39 msgid "Label printing failed" msgstr "" @@ -7568,8 +7566,8 @@ msgid "Provides native support for barcodes" msgstr "" #: plugin/builtin/barcodes/inventree_barcode.py:28 -#: plugin/builtin/integration/core_notifications.py:34 -#: plugin/builtin/integration/currency_exchange.py:22 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 #: plugin/builtin/labels/inventree_label.py:23 #: plugin/builtin/labels/label_sheet.py:63 #: plugin/builtin/suppliers/digikey.py:19 plugin/builtin/suppliers/lcsc.py:21 @@ -7577,49 +7575,49 @@ msgstr "" msgid "InvenTree contributors" msgstr "" -#: plugin/builtin/integration/core_notifications.py:33 +#: plugin/builtin/integration/core_notifications.py:34 msgid "InvenTree Notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/core_notifications.py:36 msgid "Integrated outgoing notification methods" msgstr "" -#: plugin/builtin/integration/core_notifications.py:40 -#: plugin/builtin/integration/core_notifications.py:81 +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 msgid "Enable email notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:41 -#: plugin/builtin/integration/core_notifications.py:82 +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 msgid "Allow sending of emails for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:46 +#: plugin/builtin/integration/core_notifications.py:47 msgid "Enable slack notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:47 +#: plugin/builtin/integration/core_notifications.py:49 msgid "Allow sending of slack channel messages for event notifications" msgstr "" -#: plugin/builtin/integration/core_notifications.py:52 +#: plugin/builtin/integration/core_notifications.py:55 msgid "Slack incoming webhook url" msgstr "" -#: plugin/builtin/integration/core_notifications.py:53 +#: plugin/builtin/integration/core_notifications.py:56 msgid "URL that is used to send messages to a slack channel" msgstr "" -#: plugin/builtin/integration/core_notifications.py:162 +#: plugin/builtin/integration/core_notifications.py:164 msgid "Open link" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:23 +#: plugin/builtin/integration/currency_exchange.py:22 msgid "InvenTree Currency Exchange" msgstr "" -#: plugin/builtin/integration/currency_exchange.py:24 +#: plugin/builtin/integration/currency_exchange.py:23 msgid "Default currency exchange integration" msgstr "" @@ -7659,7 +7657,7 @@ msgstr "" msgid "Print a border around each label" msgstr "" -#: plugin/builtin/labels/label_sheet.py:47 report/models.py:203 +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:205 msgid "Landscape" msgstr "" @@ -7675,7 +7673,7 @@ msgstr "" msgid "Arrays multiple labels onto a single sheet" msgstr "" -#: plugin/builtin/labels/label_sheet.py:95 +#: plugin/builtin/labels/label_sheet.py:94 msgid "Label is too large for page size" msgstr "" @@ -7735,113 +7733,113 @@ msgstr "" msgid "Permission denied: only staff users can install plugins" msgstr "" -#: plugin/installer.py:186 +#: plugin/installer.py:189 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:192 +#: plugin/installer.py:195 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:201 +#: plugin/installer.py:203 msgid "Plugin installation failed" msgstr "" -#: plugin/models.py:28 +#: plugin/models.py:29 msgid "Plugin Configuration" msgstr "" -#: plugin/models.py:29 +#: plugin/models.py:30 msgid "Plugin Configurations" msgstr "" -#: plugin/models.py:34 users/models.py:90 +#: plugin/models.py:33 users/models.py:89 msgid "Key" msgstr "" -#: plugin/models.py:35 +#: plugin/models.py:33 msgid "Key of plugin" msgstr "" -#: plugin/models.py:43 +#: plugin/models.py:41 msgid "PluginName of the plugin" msgstr "" -#: plugin/models.py:49 +#: plugin/models.py:45 msgid "Is the plugin active" msgstr "" -#: plugin/models.py:129 templates/js/translated/table_filters.js:370 +#: plugin/models.py:139 templates/js/translated/table_filters.js:370 #: templates/js/translated/table_filters.js:500 msgid "Installed" msgstr "" -#: plugin/models.py:138 +#: plugin/models.py:148 msgid "Sample plugin" msgstr "" -#: plugin/models.py:146 +#: plugin/models.py:156 msgid "Builtin Plugin" msgstr "" -#: plugin/models.py:171 templates/InvenTree/settings/plugin_settings.html:9 +#: plugin/models.py:180 templates/InvenTree/settings/plugin_settings.html:9 #: templates/js/translated/plugin.js:51 msgid "Plugin" msgstr "" -#: plugin/models.py:222 +#: plugin/models.py:227 msgid "Method" msgstr "" -#: plugin/plugin.py:265 +#: plugin/plugin.py:271 msgid "No author found" msgstr "" -#: plugin/registry.py:510 +#: plugin/registry.py:553 #, python-brace-format msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" -#: plugin/registry.py:512 +#: plugin/registry.py:556 #, python-brace-format msgid "Plugin requires at least version {v}" msgstr "" -#: plugin/registry.py:514 +#: plugin/registry.py:558 #, python-brace-format msgid "Plugin requires at most version {v}" msgstr "" -#: plugin/samples/integration/sample.py:50 +#: plugin/samples/integration/sample.py:52 msgid "Enable PO" msgstr "" -#: plugin/samples/integration/sample.py:51 +#: plugin/samples/integration/sample.py:53 msgid "Enable PO functionality in InvenTree interface" msgstr "" -#: plugin/samples/integration/sample.py:56 +#: plugin/samples/integration/sample.py:58 msgid "API Key" msgstr "" -#: plugin/samples/integration/sample.py:57 +#: plugin/samples/integration/sample.py:59 msgid "Key required for accessing external API" msgstr "" -#: plugin/samples/integration/sample.py:61 +#: plugin/samples/integration/sample.py:63 msgid "Numerical" msgstr "" -#: plugin/samples/integration/sample.py:62 +#: plugin/samples/integration/sample.py:64 msgid "A numerical setting" msgstr "" -#: plugin/samples/integration/sample.py:67 +#: plugin/samples/integration/sample.py:69 msgid "Choice Setting" msgstr "" -#: plugin/samples/integration/sample.py:68 +#: plugin/samples/integration/sample.py:70 msgid "A setting with multiple choices" msgstr "" @@ -7853,35 +7851,35 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" -#: plugin/serializers.py:87 +#: plugin/serializers.py:79 msgid "Source URL" msgstr "" -#: plugin/serializers.py:88 +#: plugin/serializers.py:81 msgid "Source for the package - this can be a custom registry or a VCS path" msgstr "" -#: plugin/serializers.py:93 +#: plugin/serializers.py:87 msgid "Package Name" msgstr "" -#: plugin/serializers.py:94 +#: plugin/serializers.py:89 msgid "Name for the Plugin Package - can also contain a version indicator" msgstr "" -#: plugin/serializers.py:97 +#: plugin/serializers.py:93 msgid "Confirm plugin installation" msgstr "" -#: plugin/serializers.py:98 +#: plugin/serializers.py:95 msgid "This will install this plugin now into the current instance. The instance will go into maintenance." msgstr "" -#: plugin/serializers.py:110 +#: plugin/serializers.py:108 msgid "Installation not confirmed" msgstr "" -#: plugin/serializers.py:112 +#: plugin/serializers.py:110 msgid "Either packagename of URL must be provided" msgstr "" @@ -7893,40 +7891,40 @@ msgstr "" msgid "Perform a full reload of the plugin registry" msgstr "" -#: plugin/serializers.py:145 +#: plugin/serializers.py:146 msgid "Force reload" msgstr "" -#: plugin/serializers.py:146 +#: plugin/serializers.py:148 msgid "Force a reload of the plugin registry, even if it is already loaded" msgstr "" -#: plugin/serializers.py:151 +#: plugin/serializers.py:155 msgid "Collect plugins" msgstr "" -#: plugin/serializers.py:152 +#: plugin/serializers.py:156 msgid "Collect plugins and add them to the registry" msgstr "" -#: plugin/serializers.py:172 +#: plugin/serializers.py:178 msgid "Activate Plugin" msgstr "" -#: plugin/serializers.py:173 +#: plugin/serializers.py:179 msgid "Activate this plugin" msgstr "" -#: report/api.py:173 +#: report/api.py:175 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:210 report/api.py:246 +#: report/api.py:214 report/api.py:251 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:323 +#: report/api.py:331 msgid "Test report" msgstr "" @@ -7946,103 +7944,103 @@ msgstr "" msgid "Letter" msgstr "" -#: report/models.py:171 +#: report/models.py:173 msgid "Template name" msgstr "" -#: report/models.py:177 +#: report/models.py:179 msgid "Report template file" msgstr "" -#: report/models.py:184 +#: report/models.py:186 msgid "Report template description" msgstr "" -#: report/models.py:190 +#: report/models.py:192 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:198 +#: report/models.py:200 msgid "Page size for PDF reports" msgstr "" -#: report/models.py:204 +#: report/models.py:206 msgid "Render report in landscape orientation" msgstr "" -#: report/models.py:305 +#: report/models.py:309 msgid "Pattern for generating report filenames" msgstr "" -#: report/models.py:312 +#: report/models.py:316 msgid "Report template is enabled" msgstr "" -#: report/models.py:333 +#: report/models.py:338 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:341 +#: report/models.py:345 msgid "Include Installed Tests" msgstr "" -#: report/models.py:342 +#: report/models.py:347 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:402 +#: report/models.py:415 msgid "Build Filters" msgstr "" -#: report/models.py:403 +#: report/models.py:416 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:444 +#: report/models.py:455 msgid "Part Filters" msgstr "" -#: report/models.py:445 +#: report/models.py:456 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:479 +#: report/models.py:488 msgid "Purchase order query filters" msgstr "" -#: report/models.py:517 +#: report/models.py:524 msgid "Sales order query filters" msgstr "" -#: report/models.py:555 +#: report/models.py:560 msgid "Return order query filters" msgstr "" -#: report/models.py:606 +#: report/models.py:608 msgid "Snippet" msgstr "" -#: report/models.py:607 +#: report/models.py:609 msgid "Report snippet file" msgstr "" -#: report/models.py:611 +#: report/models.py:616 msgid "Snippet file description" msgstr "" -#: report/models.py:647 +#: report/models.py:653 msgid "Asset" msgstr "" -#: report/models.py:648 +#: report/models.py:654 msgid "Report asset file" msgstr "" -#: report/models.py:655 +#: report/models.py:661 msgid "Asset file description" msgstr "" -#: report/models.py:676 +#: report/models.py:683 msgid "stock location query filters (comma-separated list of key=value pairs)" msgstr "" @@ -8083,7 +8081,7 @@ msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:759 stock/templates/stock/item_base.html:311 +#: stock/models.py:801 stock/templates/stock/item_base.html:311 #: templates/js/translated/build.js:514 templates/js/translated/build.js:1354 #: templates/js/translated/build.js:2343 #: templates/js/translated/model_renderers.js:222 @@ -8109,12 +8107,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2306 templates/js/translated/stock.js:1475 +#: stock/models.py:2322 templates/js/translated/stock.js:1475 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2312 +#: stock/models.py:2326 msgid "Result" msgstr "" @@ -8140,7 +8138,7 @@ msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:168 -#: stock/admin.py:122 templates/js/translated/stock.js:700 +#: stock/admin.py:160 templates/js/translated/stock.js:700 #: templates/js/translated/stock.js:871 templates/js/translated/stock.js:3081 msgid "Serial" msgstr "" @@ -8149,438 +8147,438 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: report/templatetags/report.py:144 report/templatetags/report.py:209 +#: report/templatetags/report.py:151 report/templatetags/report.py:216 msgid "Image file not found" msgstr "" -#: report/templatetags/report.py:230 +#: report/templatetags/report.py:241 msgid "part_image tag requires a Part instance" msgstr "" -#: report/templatetags/report.py:269 +#: report/templatetags/report.py:282 msgid "company_image tag requires a Company instance" msgstr "" -#: stock/admin.py:40 stock/admin.py:126 +#: stock/admin.py:52 stock/admin.py:170 msgid "Location ID" msgstr "" -#: stock/admin.py:41 stock/admin.py:127 +#: stock/admin.py:54 stock/admin.py:174 msgid "Location Name" msgstr "" -#: stock/admin.py:45 stock/templates/stock/location.html:131 +#: stock/admin.py:64 stock/templates/stock/location.html:131 #: stock/templates/stock/location.html:137 msgid "Location Path" msgstr "" -#: stock/admin.py:118 +#: stock/admin.py:147 msgid "Stock Item ID" msgstr "" -#: stock/admin.py:125 +#: stock/admin.py:166 msgid "Status Code" msgstr "" -#: stock/admin.py:128 +#: stock/admin.py:178 msgid "Supplier Part ID" msgstr "" -#: stock/admin.py:129 +#: stock/admin.py:183 msgid "Supplier ID" msgstr "" -#: stock/admin.py:130 +#: stock/admin.py:189 msgid "Supplier Name" msgstr "" -#: stock/admin.py:131 +#: stock/admin.py:194 msgid "Customer ID" msgstr "" -#: stock/admin.py:132 stock/models.py:742 +#: stock/admin.py:199 stock/models.py:781 #: stock/templates/stock/item_base.html:354 msgid "Installed In" msgstr "" -#: stock/admin.py:133 +#: stock/admin.py:204 msgid "Build ID" msgstr "" -#: stock/admin.py:135 +#: stock/admin.py:214 msgid "Sales Order ID" msgstr "" -#: stock/admin.py:136 +#: stock/admin.py:219 msgid "Purchase Order ID" msgstr "" -#: stock/admin.py:143 +#: stock/admin.py:234 msgid "Review Needed" msgstr "" -#: stock/admin.py:144 +#: stock/admin.py:239 msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:149 stock/models.py:823 +#: stock/admin.py:254 stock/models.py:875 #: stock/templates/stock/item_base.html:433 -#: templates/js/translated/stock.js:2200 users/models.py:115 +#: templates/js/translated/stock.js:2200 users/models.py:113 msgid "Expiry Date" msgstr "" -#: stock/api.py:499 templates/js/translated/table_filters.js:427 +#: stock/api.py:539 templates/js/translated/table_filters.js:427 msgid "External Location" msgstr "" -#: stock/api.py:659 +#: stock/api.py:714 msgid "Part Tree" msgstr "" -#: stock/api.py:688 +#: stock/api.py:742 msgid "Expiry date before" msgstr "" -#: stock/api.py:694 +#: stock/api.py:746 msgid "Expiry date after" msgstr "" -#: stock/api.py:699 stock/templates/stock/item_base.html:439 +#: stock/api.py:749 stock/templates/stock/item_base.html:439 #: templates/js/translated/table_filters.js:441 msgid "Stale" msgstr "" -#: stock/api.py:778 +#: stock/api.py:835 msgid "Quantity is required" msgstr "" -#: stock/api.py:786 +#: stock/api.py:841 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:814 +#: stock/api.py:872 msgid "The given supplier part does not exist" msgstr "" -#: stock/api.py:823 +#: stock/api.py:882 msgid "The supplier part has a pack size defined, but flag use_pack_size not set" msgstr "" -#: stock/api.py:846 +#: stock/api.py:913 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:56 +#: stock/models.py:65 msgid "Stock Location type" msgstr "" -#: stock/models.py:57 +#: stock/models.py:66 msgid "Stock Location types" msgstr "" -#: stock/models.py:86 +#: stock/models.py:92 msgid "Default icon for all locations that have no icon set (optional)" msgstr "" -#: stock/models.py:118 stock/models.py:726 +#: stock/models.py:124 stock/models.py:763 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:119 stock/templates/stock/location.html:179 +#: stock/models.py:125 stock/templates/stock/location.html:179 #: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 -#: users/models.py:194 +#: users/models.py:192 msgid "Stock Locations" msgstr "" -#: stock/models.py:148 stock/models.py:862 +#: stock/models.py:157 stock/models.py:924 #: stock/templates/stock/item_base.html:247 msgid "Owner" msgstr "" -#: stock/models.py:149 stock/models.py:863 +#: stock/models.py:158 stock/models.py:925 msgid "Select Owner" msgstr "" -#: stock/models.py:156 +#: stock/models.py:166 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:162 templates/js/translated/stock.js:2752 +#: stock/models.py:173 templates/js/translated/stock.js:2752 #: templates/js/translated/table_filters.js:243 msgid "External" msgstr "" -#: stock/models.py:163 +#: stock/models.py:174 msgid "This is an external stock location" msgstr "" -#: stock/models.py:169 templates/js/translated/stock.js:2761 +#: stock/models.py:180 templates/js/translated/stock.js:2761 #: templates/js/translated/table_filters.js:246 msgid "Location type" msgstr "" -#: stock/models.py:172 +#: stock/models.py:184 msgid "Stock location type of this location" msgstr "" -#: stock/models.py:237 +#: stock/models.py:253 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:593 +#: stock/models.py:617 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:619 stock/serializers.py:229 +#: stock/models.py:647 stock/serializers.py:223 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:636 +#: stock/models.py:664 #, python-brace-format msgid "Part type ('{self.supplier_part.part}') must be {self.part}" msgstr "" -#: stock/models.py:644 stock/models.py:653 +#: stock/models.py:674 stock/models.py:687 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:645 +#: stock/models.py:677 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:667 +#: stock/models.py:701 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:673 +#: stock/models.py:706 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:687 +#: stock/models.py:719 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:701 +#: stock/models.py:733 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:711 +#: stock/models.py:745 msgid "Base part" msgstr "" -#: stock/models.py:719 +#: stock/models.py:755 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:729 +#: stock/models.py:767 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:736 stock/serializers.py:1298 +#: stock/models.py:775 stock/serializers.py:1247 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:745 +#: stock/models.py:786 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:761 +#: stock/models.py:805 msgid "Serial number for this item" msgstr "" -#: stock/models.py:775 stock/serializers.py:1283 +#: stock/models.py:819 stock/serializers.py:1230 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:780 +#: stock/models.py:824 msgid "Stock Quantity" msgstr "" -#: stock/models.py:787 +#: stock/models.py:834 msgid "Source Build" msgstr "" -#: stock/models.py:789 +#: stock/models.py:837 msgid "Build for this stock item" msgstr "" -#: stock/models.py:795 stock/templates/stock/item_base.html:363 +#: stock/models.py:844 stock/templates/stock/item_base.html:363 msgid "Consumed By" msgstr "" -#: stock/models.py:797 +#: stock/models.py:847 msgid "Build order which consumed this stock item" msgstr "" -#: stock/models.py:808 +#: stock/models.py:856 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:811 +#: stock/models.py:860 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:817 +#: stock/models.py:866 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:824 +#: stock/models.py:877 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:839 +#: stock/models.py:895 msgid "Delete on deplete" msgstr "" -#: stock/models.py:839 +#: stock/models.py:896 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:858 +#: stock/models.py:916 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:886 +#: stock/models.py:947 msgid "Converted to part" msgstr "" -#: stock/models.py:1417 +#: stock/models.py:1457 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1423 +#: stock/models.py:1463 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1429 +#: stock/models.py:1471 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({self.quantity})" msgstr "" -#: stock/models.py:1432 +#: stock/models.py:1477 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1435 +#: stock/models.py:1482 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1442 stock/serializers.py:449 +#: stock/models.py:1490 stock/serializers.py:451 msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1513 +#: stock/models.py:1557 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1516 +#: stock/models.py:1561 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1519 +#: stock/models.py:1564 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1522 +#: stock/models.py:1567 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1525 +#: stock/models.py:1570 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1528 +#: stock/models.py:1573 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1535 stock/serializers.py:1194 +#: stock/models.py:1580 stock/serializers.py:1144 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1539 +#: stock/models.py:1584 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1543 +#: stock/models.py:1592 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1547 +#: stock/models.py:1597 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1741 +#: stock/models.py:1785 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2224 +#: stock/models.py:2242 msgid "Entry notes" msgstr "" -#: stock/models.py:2282 +#: stock/models.py:2301 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2288 +#: stock/models.py:2307 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2307 +#: stock/models.py:2322 msgid "Test name" msgstr "" -#: stock/models.py:2313 +#: stock/models.py:2326 msgid "Test result" msgstr "" -#: stock/models.py:2319 +#: stock/models.py:2333 msgid "Test output value" msgstr "" -#: stock/models.py:2326 +#: stock/models.py:2341 msgid "Test result attachment" msgstr "" -#: stock/models.py:2332 +#: stock/models.py:2345 msgid "Test notes" msgstr "" -#: stock/serializers.py:121 +#: stock/serializers.py:118 msgid "Serial number is too large" msgstr "" -#: stock/serializers.py:222 +#: stock/serializers.py:215 msgid "Use pack size when adding: the quantity defined is the number of packs" msgstr "" -#: stock/serializers.py:321 +#: stock/serializers.py:324 msgid "Purchase price of this stock item, per unit or pack" msgstr "" -#: stock/serializers.py:382 +#: stock/serializers.py:386 msgid "Enter number of stock items to serialize" msgstr "" -#: stock/serializers.py:394 +#: stock/serializers.py:399 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({q})" msgstr "" -#: stock/serializers.py:400 +#: stock/serializers.py:406 msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:411 stock/serializers.py:1151 stock/serializers.py:1422 +#: stock/serializers.py:417 stock/serializers.py:1101 stock/serializers.py:1349 msgid "Destination stock location" msgstr "" -#: stock/serializers.py:418 +#: stock/serializers.py:424 msgid "Optional note field" msgstr "" -#: stock/serializers.py:428 +#: stock/serializers.py:434 msgid "Serial numbers cannot be assigned to this part" msgstr "" @@ -8596,116 +8594,116 @@ msgstr "" msgid "Enter the quantity of items to install" msgstr "" -#: stock/serializers.py:502 stock/serializers.py:581 stock/serializers.py:675 -#: stock/serializers.py:731 +#: stock/serializers.py:502 stock/serializers.py:577 stock/serializers.py:673 +#: stock/serializers.py:723 msgid "Add transaction note (optional)" msgstr "" -#: stock/serializers.py:511 +#: stock/serializers.py:510 msgid "Quantity to install must be at least 1" msgstr "" -#: stock/serializers.py:519 +#: stock/serializers.py:518 msgid "Stock item is unavailable" msgstr "" -#: stock/serializers.py:526 +#: stock/serializers.py:525 msgid "Selected part is not in the Bill of Materials" msgstr "" -#: stock/serializers.py:538 +#: stock/serializers.py:537 msgid "Quantity to install must not exceed available quantity" msgstr "" -#: stock/serializers.py:576 +#: stock/serializers.py:572 msgid "Destination location for uninstalled item" msgstr "" -#: stock/serializers.py:615 +#: stock/serializers.py:607 msgid "Select part to convert stock item into" msgstr "" -#: stock/serializers.py:625 +#: stock/serializers.py:620 msgid "Selected part is not a valid option for conversion" msgstr "" -#: stock/serializers.py:639 +#: stock/serializers.py:637 msgid "Cannot convert stock item with assigned SupplierPart" msgstr "" -#: stock/serializers.py:670 +#: stock/serializers.py:668 msgid "Destination location for returned item" msgstr "" -#: stock/serializers.py:713 +#: stock/serializers.py:705 msgid "Select stock items to change status" msgstr "" -#: stock/serializers.py:719 +#: stock/serializers.py:711 msgid "No stock items selected" msgstr "" -#: stock/serializers.py:1006 +#: stock/serializers.py:973 msgid "Part must be salable" msgstr "" -#: stock/serializers.py:1010 +#: stock/serializers.py:977 msgid "Item is allocated to a sales order" msgstr "" -#: stock/serializers.py:1014 +#: stock/serializers.py:981 msgid "Item is allocated to a build order" msgstr "" -#: stock/serializers.py:1045 +#: stock/serializers.py:1005 msgid "Customer to assign stock items" msgstr "" -#: stock/serializers.py:1051 +#: stock/serializers.py:1011 msgid "Selected company is not a customer" msgstr "" -#: stock/serializers.py:1059 +#: stock/serializers.py:1019 msgid "Stock assignment notes" msgstr "" -#: stock/serializers.py:1069 stock/serializers.py:1329 +#: stock/serializers.py:1029 stock/serializers.py:1275 msgid "A list of stock items must be provided" msgstr "" -#: stock/serializers.py:1158 +#: stock/serializers.py:1108 msgid "Stock merging notes" msgstr "" -#: stock/serializers.py:1163 +#: stock/serializers.py:1113 msgid "Allow mismatched suppliers" msgstr "" -#: stock/serializers.py:1164 +#: stock/serializers.py:1114 msgid "Allow stock items with different supplier parts to be merged" msgstr "" -#: stock/serializers.py:1169 +#: stock/serializers.py:1119 msgid "Allow mismatched status" msgstr "" -#: stock/serializers.py:1170 +#: stock/serializers.py:1120 msgid "Allow stock items with different status codes to be merged" msgstr "" -#: stock/serializers.py:1180 +#: stock/serializers.py:1130 msgid "At least two stock items must be provided" msgstr "" -#: stock/serializers.py:1269 +#: stock/serializers.py:1218 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:1290 +#: stock/serializers.py:1237 msgid "Stock item status code" msgstr "" -#: stock/serializers.py:1319 +#: stock/serializers.py:1265 msgid "Stock transaction notes" msgstr "" @@ -8926,7 +8924,7 @@ msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:437 -#: templates/js/translated/table_filters.js:435 users/models.py:165 +#: templates/js/translated/table_filters.js:435 users/models.py:163 msgid "Expired" msgstr "" @@ -9563,7 +9561,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:81 #: templates/js/translated/forms.js:543 templates/js/translated/helpers.js:105 #: templates/js/translated/part.js:392 templates/js/translated/pricing.js:629 -#: templates/js/translated/stock.js:245 users/models.py:410 +#: templates/js/translated/stock.js:245 users/models.py:399 msgid "Delete" msgstr "" @@ -12732,7 +12730,7 @@ msgstr "" msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:1042 users/models.py:406 +#: templates/js/translated/stock.js:1042 users/models.py:389 msgid "Add" msgstr "" @@ -13371,7 +13369,7 @@ msgstr "" msgid "New Notifications" msgstr "" -#: templates/navbar.html:144 users/models.py:190 +#: templates/navbar.html:144 users/models.py:188 msgid "Admin" msgstr "" @@ -13542,31 +13540,31 @@ msgstr "" msgid "No" msgstr "" -#: users/admin.py:90 +#: users/admin.py:103 msgid "Users" msgstr "" -#: users/admin.py:91 +#: users/admin.py:104 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:226 +#: users/admin.py:248 msgid "The following users are members of multiple groups" msgstr "" -#: users/admin.py:253 +#: users/admin.py:282 msgid "Personal info" msgstr "" -#: users/admin.py:254 +#: users/admin.py:284 msgid "Permissions" msgstr "" -#: users/admin.py:257 +#: users/admin.py:287 msgid "Important dates" msgstr "" -#: users/authentication.py:29 users/models.py:129 +#: users/authentication.py:29 users/models.py:127 msgid "Token has been revoked" msgstr "" @@ -13582,15 +13580,15 @@ msgstr "" msgid "API Tokens" msgstr "" -#: users/models.py:109 +#: users/models.py:107 msgid "Token Name" msgstr "" -#: users/models.py:110 +#: users/models.py:108 msgid "Custom token name" msgstr "" -#: users/models.py:116 +#: users/models.py:114 msgid "Token expiry date" msgstr "" @@ -13602,38 +13600,38 @@ msgstr "" msgid "Last time the token was used" msgstr "" -#: users/models.py:128 +#: users/models.py:127 msgid "Revoked" msgstr "" -#: users/models.py:393 +#: users/models.py:372 msgid "Permission set" msgstr "" -#: users/models.py:401 +#: users/models.py:381 msgid "Group" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "View" msgstr "" -#: users/models.py:404 +#: users/models.py:385 msgid "Permission to view items" msgstr "" -#: users/models.py:406 +#: users/models.py:389 msgid "Permission to add items" msgstr "" -#: users/models.py:408 +#: users/models.py:393 msgid "Change" msgstr "" -#: users/models.py:408 +#: users/models.py:395 msgid "Permissions to edit items" msgstr "" -#: users/models.py:410 +#: users/models.py:401 msgid "Permission to delete items" msgstr "" diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po index 1f7e087264..2420b8a617 100644 --- a/src/frontend/src/locales/bg/messages.po +++ b/src/frontend/src/locales/bg/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po index 87399f2957..cce6408370 100644 --- a/src/frontend/src/locales/cs/messages.po +++ b/src/frontend/src/locales/cs/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po index 17f23e7a0a..0712be6853 100644 --- a/src/frontend/src/locales/da/messages.po +++ b/src/frontend/src/locales/da/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po index 63ccdbcd95..fc410d33b5 100644 --- a/src/frontend/src/locales/de/messages.po +++ b/src/frontend/src/locales/de/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "Als gelesen markieren" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "Keine Ergebnisse für Suchanfrage verfügbar" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Lagerorte" @@ -715,7 +715,7 @@ msgstr "Lagerorte" msgid "Unknown model: {model}" msgstr "Unbekanntes Modell: {model}" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "Unbekanntes Modell: {model}" msgid "Part" msgstr "Teil" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "Teil" msgid "Parts" msgstr "Teile" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "Zuliefererteil" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Zuliefererteile" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "Herstellerteil" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Herstellerteile" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "Teilkategorie" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "Lagerartikel" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "Lagerartikel" msgid "Stock Items" msgstr "Lagerartikel" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "Lagerort" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "Lagerhistorie" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Version" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "Firma" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Unternehmen" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "Projekt-Code" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "Projektnummern" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "Einkaufsbestellung" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "Einkaufsbestellung" msgid "Purchase Orders" msgstr "Nachbestellungen" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "Bestellposition" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "Bestellpositionen" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "Verkaufsauftrag" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "Verkaufsauftrag" msgid "Sales Orders" msgstr "Verkaufsaufträge" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "Rückgabe Auftrag" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Reklamationen" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "Adresse" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "Adressen" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "Kontakt" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "Kontakte" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "Eigentümer" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "Eigentümer" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "Nutzer" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" @@ -4282,4 +4282,3 @@ msgstr "" #: src/views/MobileAppView.tsx:23 msgid "Read the docs" msgstr "" - diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po index f4ca211a7b..6e00015ed5 100644 --- a/src/frontend/src/locales/el/messages.po +++ b/src/frontend/src/locales/el/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po index cc6be4ce12..915fc87910 100644 --- a/src/frontend/src/locales/en/messages.po +++ b/src/frontend/src/locales/en/messages.po @@ -662,7 +662,7 @@ msgid "Mark as read" msgstr "Mark as read" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -701,7 +701,7 @@ msgid "No results available for search query" msgstr "No results available for search query" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Stock Locations" @@ -710,7 +710,7 @@ msgstr "Stock Locations" msgid "Unknown model: {model}" msgstr "Unknown model: {model}" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -724,7 +724,7 @@ msgstr "Unknown model: {model}" msgid "Part" msgstr "Part" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -735,42 +735,42 @@ msgstr "Part" msgid "Parts" msgstr "Parts" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "Part Parameter Template" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "Part Parameter Templates" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "Supplier Part" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Supplier Parts" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "Manufacturer Part" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Manufacturer Parts" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "Part Category" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "Stock Item" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -778,55 +778,55 @@ msgstr "Stock Item" msgid "Stock Items" msgstr "Stock Items" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "Stock Location" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "Stock History" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "Stock Histories" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Build" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "Builds" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "Company" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Companies" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "Project Code" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "Project Codes" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "Purchase Order" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -834,21 +834,21 @@ msgstr "Purchase Order" msgid "Purchase Orders" msgstr "Purchase Orders" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "Purchase Order Line" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "Purchase Order Lines" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "Sales Order" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -856,58 +856,58 @@ msgstr "Sales Order" msgid "Sales Orders" msgstr "Sales Orders" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "Sales Order Shipment" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "Sales Order Shipments" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "Return Order" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Return Orders" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "Address" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "Addresses" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "Contact" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "Contacts" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "Owner" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "Owners" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "User" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/es-mx/messages.po b/src/frontend/src/locales/es-mx/messages.po index 2505564129..2d81970d7a 100644 --- a/src/frontend/src/locales/es-mx/messages.po +++ b/src/frontend/src/locales/es-mx/messages.po @@ -635,7 +635,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -674,7 +674,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -683,7 +683,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -697,7 +697,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -708,42 +708,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -751,55 +751,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -807,21 +807,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -829,58 +829,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po index ed1d3b707f..0a639be8e0 100644 --- a/src/frontend/src/locales/es/messages.po +++ b/src/frontend/src/locales/es/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "Órdenes de compra" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Ordenes de devolución" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po index 09370d1b8d..31fedfec30 100644 --- a/src/frontend/src/locales/fa/messages.po +++ b/src/frontend/src/locales/fa/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po index 6de58f810c..252920036b 100644 --- a/src/frontend/src/locales/fi/messages.po +++ b/src/frontend/src/locales/fi/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po index 0957c983d0..23436effbc 100644 --- a/src/frontend/src/locales/fr/messages.po +++ b/src/frontend/src/locales/fr/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "Aucun résultat disponible pour la requête" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Emplacements de stock" @@ -715,7 +715,7 @@ msgstr "Emplacements de stock" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "Composants" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Pièces du fournisseur" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Pièces du fabricant" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "Articles en stock" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Sociétés" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "Ordres d'achat" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "Ordres de vente" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Retours" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "Utilisateur" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po index 34d8978888..90a4a7c30c 100644 --- a/src/frontend/src/locales/he/messages.po +++ b/src/frontend/src/locales/he/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po index 980ef24a32..bc7092422d 100644 --- a/src/frontend/src/locales/hi/messages.po +++ b/src/frontend/src/locales/hi/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po index 7b899de9f9..8f16dbcdc2 100644 --- a/src/frontend/src/locales/hu/messages.po +++ b/src/frontend/src/locales/hu/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "Megjelölés olvasottként" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "Nincs találat a keresésre" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Készlethelyek" @@ -715,7 +715,7 @@ msgstr "Készlethelyek" msgid "Unknown model: {model}" msgstr "Ismeretlen model: {model}" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "Ismeretlen model: {model}" msgid "Part" msgstr "Alkatrész" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "Alkatrész" msgid "Parts" msgstr "Alkatrészek" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "Alkatrész paraméter sablon" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "Alkatrész paraméter sablonok" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "Beszállítói alkatrész" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Beszállítói alkatrészek" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "Gyártói alkatrész" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Gyártói alkatrészek" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "Alkatrész kategória" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "Készlet tétel" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "Készlet tétel" msgid "Stock Items" msgstr "Készlet tételek" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "Készlet hely" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "Készlettörténet" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "Készlettörténet" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Gyártás" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "Gyártások" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "Cég" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Cégek" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "Projektszám" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "Projektszámok" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "Beszerzési rendelés" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "Beszerzési rendelés" msgid "Purchase Orders" msgstr "Beszerzési rendelések" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "Beszerzési rendelés tétel" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "Beszerzési rendelés tételei" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "Vevői rendelés" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "Vevői rendelés" msgid "Sales Orders" msgstr "Vevői rendelések" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "Vevői rendelés szállítmány" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "Vevői rendelés szállítmányok" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "Visszavétel" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Visszavételek" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "Cím" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "Címek" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "Kapcsolat" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "Kapcsolatok" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "Tulajdonos" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "Tulajdonosok" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "Felhasználó" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po index 67814f5f08..fd606996dc 100644 --- a/src/frontend/src/locales/it/messages.po +++ b/src/frontend/src/locales/it/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po index 10f99f537b..7449a72d60 100644 --- a/src/frontend/src/locales/ja/messages.po +++ b/src/frontend/src/locales/ja/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "既読にする" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "在庫場所" @@ -715,7 +715,7 @@ msgstr "在庫場所" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "パーツ" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "パーツ" msgid "Parts" msgstr "パーツ" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "在庫商品" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "在庫商品" msgid "Stock Items" msgstr "在庫商品" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "在庫場所" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "ユーザー" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po index 663301d7c3..cd7875c62d 100644 --- a/src/frontend/src/locales/ko/messages.po +++ b/src/frontend/src/locales/ko/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po index 04403be608..dccd39d09d 100644 --- a/src/frontend/src/locales/nl/messages.po +++ b/src/frontend/src/locales/nl/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po index f56eb93384..cc412750a3 100644 --- a/src/frontend/src/locales/no/messages.po +++ b/src/frontend/src/locales/no/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "Merk som lest" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "Ingen resultater tilgjengelig for søk" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Lagerplasseringer" @@ -715,7 +715,7 @@ msgstr "Lagerplasseringer" msgid "Unknown model: {model}" msgstr "Ukjent modell: {model}" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "Ukjent modell: {model}" msgid "Part" msgstr "Del" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "Del" msgid "Parts" msgstr "Deler" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "Mal for Delparameter" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "Maler for Delparameter" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "Leverandørdel" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Leverandørdeler" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "Produsentdel" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Produsentdeler" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "Delkategori" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "Lagervare" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "Lagervare" msgid "Stock Items" msgstr "Lagervarer" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "Lagerplassering" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "Lagerhistorikk" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "Lagerhistorikk" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Produksjon" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "Produksjoner" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "Firma" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Firma" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "Prosjektkode" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "Prosjektkoder" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "Innkjøpsordre" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "Innkjøpsordre" msgid "Purchase Orders" msgstr "Innkjøpsordrer" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "Ordrelinje for innkjøpsordre" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "Ordrelinjer for innkjøpsordre" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "Salgsordre" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "Salgsordre" msgid "Sales Orders" msgstr "Salgsordrer" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "Salgsordreforsendelse" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "Salgsordreforsendelser" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "Returordre" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Returordrer" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "Adresse" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "Adresser" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "Kontakt" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "Kontakter" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "Eier" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "Eiere" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "Bruker" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po index fa6d493d6c..0384c8f310 100644 --- a/src/frontend/src/locales/pl/messages.po +++ b/src/frontend/src/locales/pl/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/pseudo-LOCALE/messages.po b/src/frontend/src/locales/pseudo-LOCALE/messages.po index a2aadcf799..981d36b6fb 100644 --- a/src/frontend/src/locales/pseudo-LOCALE/messages.po +++ b/src/frontend/src/locales/pseudo-LOCALE/messages.po @@ -706,7 +706,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -745,7 +745,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -754,7 +754,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -768,7 +768,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -779,42 +779,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -822,55 +822,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -878,21 +878,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -900,58 +900,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/pt-br/messages.po b/src/frontend/src/locales/pt-br/messages.po index 11ce266b88..6ba66a1f13 100644 --- a/src/frontend/src/locales/pt-br/messages.po +++ b/src/frontend/src/locales/pt-br/messages.po @@ -635,7 +635,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -674,7 +674,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -683,7 +683,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -697,7 +697,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -708,42 +708,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -751,55 +751,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -807,21 +807,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -829,58 +829,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po index 95b9eac8b7..2d7cb7c4d4 100644 --- a/src/frontend/src/locales/pt/messages.po +++ b/src/frontend/src/locales/pt/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "Não há resultados disponíveis para a pesquisa" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Locais de estoque" @@ -715,7 +715,7 @@ msgstr "Locais de estoque" msgid "Unknown model: {model}" msgstr "Modelo desconhecido: {model}" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "Modelo desconhecido: {model}" msgid "Part" msgstr "Peça" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "Peça" msgid "Parts" msgstr "Peças" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Peças do Fornecedor" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Peças do Fabricante" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "Itens de Estoque" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Produzir" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Empresas" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "Código do Projeto" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "Pedidos de compra" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "Pedidos de vendas" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Pedidos de Devolução" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "Usuário" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po index 49857bca1c..e90dfd0676 100644 --- a/src/frontend/src/locales/ru/messages.po +++ b/src/frontend/src/locales/ru/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "Пометить как прочитанное" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "Нет доступных результатов для поискового запроса" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Места хранения" @@ -715,7 +715,7 @@ msgstr "Места хранения" msgid "Unknown model: {model}" msgstr "Неизвестная модель: {model}" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "Неизвестная модель: {model}" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "Детали" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Детали поставщиков" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Детали производителей" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "Складские позиции" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Компании" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "Заказы на закупку" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "Заказы на продажу" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Заказы на возврат" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po index 9faebf4e6b..d6fbcd72e9 100644 --- a/src/frontend/src/locales/sl/messages.po +++ b/src/frontend/src/locales/sl/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/sr/messages.po b/src/frontend/src/locales/sr/messages.po index cabf447bd7..a854fd07d0 100644 --- a/src/frontend/src/locales/sr/messages.po +++ b/src/frontend/src/locales/sr/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po index 7aea6ec4de..925226c364 100644 --- a/src/frontend/src/locales/sv/messages.po +++ b/src/frontend/src/locales/sv/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "Inga resultat tillgängliga för sökfrågan" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Lagerplats" @@ -715,7 +715,7 @@ msgstr "Lagerplats" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "Artkel" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "Artkel" msgid "Parts" msgstr "Artiklar" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Leverantörsartikel" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Tillverkarens artiklar" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "Artikel i lager" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Bygg" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Företag" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "Projektkod" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "Inköpsorder" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "Försäljningsorder" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Returorder" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "Användare" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po index 1d75b9447c..31f5ceb2ec 100644 --- a/src/frontend/src/locales/th/messages.po +++ b/src/frontend/src/locales/th/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -715,7 +715,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po index 66b16aaf2a..236fa514e8 100644 --- a/src/frontend/src/locales/tr/messages.po +++ b/src/frontend/src/locales/tr/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "Arama sorgusu için sonuç yok" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Stok Konumları" @@ -715,7 +715,7 @@ msgstr "Stok Konumları" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "" msgid "Part" msgstr "Parça" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "Parça" msgid "Parts" msgstr "Parçalar" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Tedarikçi Parçaları" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Üretici Parçaları" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "" msgid "Stock Items" msgstr "Stok Kalemleri" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Şirketler" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "Proje Kodu" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "" msgid "Purchase Orders" msgstr "Satın Alma Emirleri" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "" msgid "Sales Orders" msgstr "Satış Emirleri" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "İade Emirleri" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "Kullanıcı" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po index 085bc82e52..ab677fc37a 100644 --- a/src/frontend/src/locales/vi/messages.po +++ b/src/frontend/src/locales/vi/messages.po @@ -667,7 +667,7 @@ msgid "Mark as read" msgstr "Đánh dấu đã đọc" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -706,7 +706,7 @@ msgid "No results available for search query" msgstr "Không có kết quả nào được tìm thấy với truy vấn tìm kiếm" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "Vị trí kho hàng" @@ -715,7 +715,7 @@ msgstr "Vị trí kho hàng" msgid "Unknown model: {model}" msgstr "Model không rõ: {model}" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -729,7 +729,7 @@ msgstr "Model không rõ: {model}" msgid "Part" msgstr "Phụ kiện" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -740,42 +740,42 @@ msgstr "Phụ kiện" msgid "Parts" msgstr "Phụ tùng" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "Mẫu tham số phụ kiện" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "Mẫu tham số phụ kiện" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "Phụ kiện nhà cung cấp" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "Nhà cung cấp phụ kiện" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "Phụ kiện nhà sản xuất" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "Nhà sản xuất phụ kiện" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "Danh mục phụ kiện" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "Hàng trong kho" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -783,55 +783,55 @@ msgstr "Hàng trong kho" msgid "Stock Items" msgstr "Hàng trong kho" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "Vị trí kho hàng" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "Xây dựng" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "Bản dựng" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "Công ty" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "Doanh nghiệp" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "Mã dự án" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "Mã dự án" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "Đơn đặt mua" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -839,21 +839,21 @@ msgstr "Đơn đặt mua" msgid "Purchase Orders" msgstr "Đơn hàng mua" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "Đơn đặt bán" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -861,58 +861,58 @@ msgstr "Đơn đặt bán" msgid "Sales Orders" msgstr "Đơn hàng bán" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "Vận chuyển đơn hàng" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "Vận chuyển đơn hàng" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "Đơn hàng trả lại" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "Đơn hàng trả lại" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "Địa chỉ" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "Địa chỉ" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "Liên hệ" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "Danh bạ" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "Chủ sở hữu" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "Chủ sở hữu" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "Người dùng" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/zh-hans/messages.po b/src/frontend/src/locales/zh-hans/messages.po index 465a4a86d1..6c49abea23 100644 --- a/src/frontend/src/locales/zh-hans/messages.po +++ b/src/frontend/src/locales/zh-hans/messages.po @@ -635,7 +635,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -674,7 +674,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -683,7 +683,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -697,7 +697,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -708,42 +708,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -751,55 +751,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -807,21 +807,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -829,58 +829,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users" diff --git a/src/frontend/src/locales/zh-hant/messages.po b/src/frontend/src/locales/zh-hant/messages.po index 52b1b12d83..33083f8bc7 100644 --- a/src/frontend/src/locales/zh-hant/messages.po +++ b/src/frontend/src/locales/zh-hant/messages.po @@ -635,7 +635,7 @@ msgid "Mark as read" msgstr "" #: src/components/nav/PartCategoryTree.tsx:80 -#: src/components/render/ModelType.tsx:49 +#: src/components/render/ModelType.tsx:53 #: src/pages/Index/Settings/SystemSettings.tsx:165 #: src/pages/part/CategoryDetail.tsx:60 msgid "Part Categories" @@ -674,7 +674,7 @@ msgid "No results available for search query" msgstr "" #: src/components/nav/StockLocationTree.tsx:80 -#: src/components/render/ModelType.tsx:63 +#: src/components/render/ModelType.tsx:69 #: src/pages/stock/LocationDetail.tsx:48 msgid "Stock Locations" msgstr "" @@ -683,7 +683,7 @@ msgstr "" msgid "Unknown model: {model}" msgstr "" -#: src/components/render/ModelType.tsx:20 +#: src/components/render/ModelType.tsx:21 #: src/components/tables/bom/BomTable.tsx:62 #: src/components/tables/build/BuildOrderTable.tsx:39 #: src/components/tables/part/PartParameterTable.tsx:34 @@ -697,7 +697,7 @@ msgstr "" msgid "Part" msgstr "" -#: src/components/render/ModelType.tsx:21 +#: src/components/render/ModelType.tsx:22 #: src/components/tables/part/PartCategoryTable.tsx:46 #: src/defaults/links.tsx:27 #: src/defaults/menuItems.tsx:33 @@ -708,42 +708,42 @@ msgstr "" msgid "Parts" msgstr "" -#: src/components/render/ModelType.tsx:27 +#: src/components/render/ModelType.tsx:29 msgid "Part Parameter Template" msgstr "" -#: src/components/render/ModelType.tsx:28 +#: src/components/render/ModelType.tsx:30 msgid "Part Parameter Templates" msgstr "" -#: src/components/render/ModelType.tsx:34 +#: src/components/render/ModelType.tsx:36 #: src/components/tables/purchasing/SupplierPartTable.tsx:57 msgid "Supplier Part" msgstr "" -#: src/components/render/ModelType.tsx:35 +#: src/components/render/ModelType.tsx:37 msgid "Supplier Parts" msgstr "" -#: src/components/render/ModelType.tsx:41 +#: src/components/render/ModelType.tsx:44 msgid "Manufacturer Part" msgstr "" -#: src/components/render/ModelType.tsx:42 +#: src/components/render/ModelType.tsx:45 msgid "Manufacturer Parts" msgstr "" -#: src/components/render/ModelType.tsx:48 +#: src/components/render/ModelType.tsx:52 #: src/pages/part/CategoryDetail.tsx:102 msgid "Part Category" msgstr "" -#: src/components/render/ModelType.tsx:55 +#: src/components/render/ModelType.tsx:60 #: src/pages/stock/StockDetail.tsx:220 msgid "Stock Item" msgstr "" -#: src/components/render/ModelType.tsx:56 +#: src/components/render/ModelType.tsx:61 #: src/components/tables/stock/StockLocationTable.tsx:62 #: src/pages/company/CompanyDetail.tsx:99 #: src/pages/stock/LocationDetail.tsx:36 @@ -751,55 +751,55 @@ msgstr "" msgid "Stock Items" msgstr "" -#: src/components/render/ModelType.tsx:62 +#: src/components/render/ModelType.tsx:68 msgid "Stock Location" msgstr "" -#: src/components/render/ModelType.tsx:69 +#: src/components/render/ModelType.tsx:76 msgid "Stock History" msgstr "" -#: src/components/render/ModelType.tsx:70 +#: src/components/render/ModelType.tsx:77 msgid "Stock Histories" msgstr "" -#: src/components/render/ModelType.tsx:74 +#: src/components/render/ModelType.tsx:81 #: src/defaults/links.tsx:29 #: src/defaults/menuItems.tsx:43 msgid "Build" msgstr "" -#: src/components/render/ModelType.tsx:75 +#: src/components/render/ModelType.tsx:82 msgid "Builds" msgstr "" -#: src/components/render/ModelType.tsx:81 +#: src/components/render/ModelType.tsx:89 #: src/pages/company/CompanyDetail.tsx:199 msgid "Company" msgstr "" -#: src/components/render/ModelType.tsx:82 +#: src/components/render/ModelType.tsx:90 msgid "Companies" msgstr "" -#: src/components/render/ModelType.tsx:88 +#: src/components/render/ModelType.tsx:97 #: src/components/tables/ColumnRenderers.tsx:72 #: src/components/tables/TableHoverCard.tsx:58 #: src/components/tables/settings/ProjectCodeTable.tsx:33 msgid "Project Code" msgstr "" -#: src/components/render/ModelType.tsx:89 +#: src/components/render/ModelType.tsx:98 #: src/pages/Index/Settings/AdminCenter/Index.tsx:52 msgid "Project Codes" msgstr "" -#: src/components/render/ModelType.tsx:95 +#: src/components/render/ModelType.tsx:104 #: src/pages/purchasing/PurchaseOrderDetail.tsx:131 msgid "Purchase Order" msgstr "" -#: src/components/render/ModelType.tsx:96 +#: src/components/render/ModelType.tsx:105 #: src/pages/Index/Settings/SystemSettings.tsx:234 #: src/pages/company/CompanyDetail.tsx:90 #: src/pages/part/PartDetail.tsx:183 @@ -807,21 +807,21 @@ msgstr "" msgid "Purchase Orders" msgstr "" -#: src/components/render/ModelType.tsx:102 +#: src/components/render/ModelType.tsx:112 msgid "Purchase Order Line" msgstr "" -#: src/components/render/ModelType.tsx:103 +#: src/components/render/ModelType.tsx:113 msgid "Purchase Order Lines" msgstr "" -#: src/components/render/ModelType.tsx:107 +#: src/components/render/ModelType.tsx:117 #: src/components/tables/sales/SalesOrderTable.tsx:58 #: src/pages/sales/SalesOrderDetail.tsx:96 msgid "Sales Order" msgstr "" -#: src/components/render/ModelType.tsx:108 +#: src/components/render/ModelType.tsx:118 #: src/pages/Index/Settings/SystemSettings.tsx:247 #: src/pages/company/CompanyDetail.tsx:108 #: src/pages/part/PartDetail.tsx:189 @@ -829,58 +829,58 @@ msgstr "" msgid "Sales Orders" msgstr "" -#: src/components/render/ModelType.tsx:114 +#: src/components/render/ModelType.tsx:125 msgid "Sales Order Shipment" msgstr "" -#: src/components/render/ModelType.tsx:115 +#: src/components/render/ModelType.tsx:126 msgid "Sales Order Shipments" msgstr "" -#: src/components/render/ModelType.tsx:121 +#: src/components/render/ModelType.tsx:132 #: src/components/tables/sales/ReturnOrderTable.tsx:55 #: src/pages/sales/ReturnOrderDetail.tsx:68 msgid "Return Order" msgstr "" -#: src/components/render/ModelType.tsx:122 +#: src/components/render/ModelType.tsx:133 #: src/pages/company/CompanyDetail.tsx:117 #: src/pages/sales/SalesIndex.tsx:27 msgid "Return Orders" msgstr "" -#: src/components/render/ModelType.tsx:128 +#: src/components/render/ModelType.tsx:140 #: src/components/tables/company/AddressTable.tsx:49 msgid "Address" msgstr "" -#: src/components/render/ModelType.tsx:129 +#: src/components/render/ModelType.tsx:141 #: src/pages/company/CompanyDetail.tsx:138 msgid "Addresses" msgstr "" -#: src/components/render/ModelType.tsx:135 +#: src/components/render/ModelType.tsx:147 msgid "Contact" msgstr "" -#: src/components/render/ModelType.tsx:136 +#: src/components/render/ModelType.tsx:148 #: src/pages/company/CompanyDetail.tsx:132 msgid "Contacts" msgstr "" -#: src/components/render/ModelType.tsx:142 +#: src/components/render/ModelType.tsx:154 msgid "Owner" msgstr "" -#: src/components/render/ModelType.tsx:143 +#: src/components/render/ModelType.tsx:155 msgid "Owners" msgstr "" -#: src/components/render/ModelType.tsx:149 +#: src/components/render/ModelType.tsx:161 msgid "User" msgstr "" -#: src/components/render/ModelType.tsx:150 +#: src/components/render/ModelType.tsx:162 #: src/pages/Index/Settings/AdminCenter/Index.tsx:46 #: src/pages/Index/Settings/AdminCenter/UserManagementPanel.tsx:13 msgid "Users"